diff --git a/scripts/install.sh b/scripts/install.sh index eae8c74..f71ae73 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -160,30 +160,32 @@ for example in target.conf.example remote.conf.example schedule.conf.example; do done # ── Web dashboard setup ───────────────────────────────────── -_update_conf_key() { - local file="$1" key="$2" val="$3" - if grep -q "^${key}=" "$file" 2>/dev/null; then - sed -i "s|^${key}=.*|${key}=\"${val}\"|" "$file" - else - echo "${key}=\"${val}\"" >> "$file" - fi -} - read -rp "Enable web dashboard? (y/n) [n]: " enable_web -if [[ "${enable_web,,}" == "y" ]]; then - _update_conf_key "$CONFIG_DIR/gniza.conf" "WEB_ENABLED" "yes" - # Generate random API key - api_key=$(python3 -c "import secrets; print(secrets.token_urlsafe(32))") - _update_conf_key "$CONFIG_DIR/gniza.conf" "WEB_API_KEY" "$api_key" - echo "Web API key: $api_key" - echo "Save this key — you'll need it to log into the dashboard." - # Install systemd service - if [[ "$MODE" == "root" ]]; then - "$INSTALL_DIR/bin/gniza" web install-service - else - warn "Systemd service installation requires root. Start manually: gniza web start" - fi -fi +case "${enable_web}" in + y|Y) + # Update config + if grep -q "^WEB_ENABLED=" "$CONFIG_DIR/gniza.conf" 2>/dev/null; then + sed -i "s|^WEB_ENABLED=.*|WEB_ENABLED=\"yes\"|" "$CONFIG_DIR/gniza.conf" + else + echo 'WEB_ENABLED="yes"' >> "$CONFIG_DIR/gniza.conf" + fi + # Generate random API key + api_key=$(python3 -c "import secrets; print(secrets.token_urlsafe(32))") + if grep -q "^WEB_API_KEY=" "$CONFIG_DIR/gniza.conf" 2>/dev/null; then + sed -i "s|^WEB_API_KEY=.*|WEB_API_KEY=\"${api_key}\"|" "$CONFIG_DIR/gniza.conf" + else + echo "WEB_API_KEY=\"${api_key}\"" >> "$CONFIG_DIR/gniza.conf" + fi + echo "Web API key: $api_key" + echo "Save this key — you'll need it to log into the dashboard." + # Install systemd service (root only) + if [[ "$MODE" == "root" ]]; then + "$INSTALL_DIR/bin/gniza" web install-service || warn "Failed to install web service" + else + warn "Systemd service installation requires root. Start manually: gniza web start" + fi + ;; +esac # ── Done ───────────────────────────────────────────────────── echo ""