finish gum configuration

This commit is contained in:
2023-10-21 00:09:47 -07:00
parent 71d97e9fef
commit 65b55a8697
2 changed files with 22 additions and 16 deletions

38
latest/farmer Normal file → Executable file
View File

@@ -24,9 +24,13 @@ esac
# install farmer
curl -s "https://artifacts.grlx.dev/${machine_arch}/latest/farmer" > /usr/local/bin/grlx-farmer
chmod +x /usr/local/bin/grlx-farmer
if [ ! -f /usr/local/bin/grlx-farmer ]; then
curl -L -s "https://artifacts.grlx.dev/${machine_arch}/latest/farmer" > /usr/local/bin/grlx-farmer
chmod +x /usr/local/bin/grlx-farmer
fi
# install systemd service
cat << EOF > /etc/systemd/system/grlx-farmer.service
[Unit]
Description=grlx farmer
@@ -56,18 +60,21 @@ if [ ! -f /etc/grlx/farmer ]; then
tempdir="/tmp/grlx-farmer-gum"
mkdir -p "$tempdir"
fi
trap 'rm -r "$tempdir"' EXIT
#trap 'rm -r "$tempdir"' EXIT
case $machine_arch in
"x86_64")
curl -s "https://github.com/charmbracelet/gum/releases/download/v0.11.0/gum_0.11.0_Linux_x86_64.tar.gz" > "$tempdir/gum.tar.gz"
curl -L -s "https://github.com/charmbracelet/gum/releases/download/v0.11.0/gum_0.11.0_Linux_x86_64.tar.gz" > "$tempdir/gum.tar.gz"
;;
"arm64")
curl -s "https://github.com/charmbracelet/gum/releases/download/v0.11.0/gum_0.11.0_Linux_arm64.tar.gz" > "$tempdir/gum.tar.gz"
curl -L -s "https://github.com/charmbracelet/gum/releases/download/v0.11.0/gum_0.11.0_Linux_arm64.tar.gz" > "$tempdir/gum.tar.gz"
;;
"arm")
curl -s "https://github.com/charmbracelet/gum/releases/download/v0.11.0/gum_0.11.0_Linux_arm.tar.gz" > "$tempdir/gum.tar.gz"
curl -L -s "https://github.com/charmbracelet/gum/releases/download/v0.11.0/gum_0.11.0_Linux_arm.tar.gz" > "$tempdir/gum.tar.gz"
;;
esac
echo "Installing gum..."
echo "$tempdir"
ls -ashil "$tempdir"
tar -C "$tempdir" -xzf "$tempdir/gum.tar.gz"
mv "$tempdir/gum" /usr/local/bin/gum
chmod +x /usr/local/bin/gum
@@ -75,11 +82,7 @@ if [ ! -f /etc/grlx/farmer ]; then
mkdir -p /etc/grlx
if [ -z "$FARMER_INTERFACE" ]; then
echo "FARMER_INTERFACE is not set. Please set it to the domain or IP of your farmer."
exit 1
fi
if [ -z "$FARMER_API_PORT" ]; then
FARMER_PORT=$(gum input --value=5405 --prompt="Choose a port for the farmer API: > ")
FARMER_INTERFACE=$(gum input --value="localhost" --prompt="Choose an interface for the farmer: > ")
fi
if [ -z "$FARMER_API_PORT" ]; then
FARMER_API_PORT=$(gum input --value=5405 --prompt="Choose a port for the farmer API: > ")
@@ -93,8 +96,8 @@ if [ ! -f /etc/grlx/farmer ]; then
if [ -z "$ADMIN_PUBKEYS" ]; then
ADMIN_PUBKEYS=()
while true; do
ADMIN_PUBKEYS+=($(gum input --placeholder="ABC25HBCYNHYMIFTN372NCKASUQPJCTBA66GLKXFYM3QGRP42IC5BYYF" --prompt="Enter an admin public key (generated by 'grlx auth pubkey'): > "))
if ! gum confirm --prompt="Add another admin public key? (y/n) > "; then
ADMIN_PUBKEYS+=($(gum input --width=57 --placeholder="ABC25HBCYNHYMIFTN372NCKASUQPJCTBA66GLKXFYM3QGRP42IC5BYYF" --prompt="Enter an admin public key (generated by 'grlx auth pubkey'): > "))
if ! gum confirm "Add another admin public key?"; then
break
fi
done
@@ -103,7 +106,7 @@ if [ ! -f /etc/grlx/farmer ]; then
CERTHOSTS=()
while true; do
CERTHOSTS+=($(gum input --placeholder="mydomain.com" --prompt="Enter a domain or IP to generate a certificate for: > "))
if ! gum confirm --prompt="Add another domain or IP? (y/n) > "; then
if ! gum confirm "Add another domain or IP?"; then
break
fi
done
@@ -112,7 +115,7 @@ if [ ! -f /etc/grlx/farmer ]; then
cat << EOF > /etc/grlx/farmer
certhosts:
$(for host in "${CERTHOSTS[@]}"; do echo " - $host"; done)
$(for host in "${CERTHOSTS[@]}"; do echo " - $host"; done)
certificatevalidtime: 8760h0m0s
configroot: /etc/grlx/
farmerapiport: "$FARMER_API_PORT"
@@ -128,9 +131,12 @@ rootca: /etc/grlx/pki/farmer/tls-rootca.pem
rootcapriv: /etc/grlx/pki/farmer/tls-rootca-key.pem
pubkeys:
admin:
$(for key in "${ADMIN_PUBKEYS[@]}"; do echo " - $key"; done)
$(for key in "${ADMIN_PUBKEYS[@]}"; do echo " - $key"; done)
EOF
fi
useradd -r -s /usr/sbin/nologin farmer >/dev/null || true
chown farmer:farmer /etc/grlx
chmod 700 /etc/grlx
systemctl daemon-reload
systemctl enable --now grlx-farmer

0
latest/sprout Normal file → Executable file
View File