diff --git a/latest/farmer b/latest/farmer old mode 100644 new mode 100755 index 3ce87cb..aa43aa0 --- a/latest/farmer +++ b/latest/farmer @@ -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 diff --git a/latest/sprout b/latest/sprout old mode 100644 new mode 100755