From 01d702c74598fe6cff36deb6dbe0a7961b611cc1 Mon Sep 17 00:00:00 2001 From: Tobias Gesellchen Date: Sun, 22 Feb 2026 01:02:02 +0100 Subject: [PATCH] Fix the Raspberry Pi install script (self-update, env variables) --- scripts/raspberry-pi/install.sh | 56 ++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/scripts/raspberry-pi/install.sh b/scripts/raspberry-pi/install.sh index 5fa4b06..4502dcd 100644 --- a/scripts/raspberry-pi/install.sh +++ b/scripts/raspberry-pi/install.sh @@ -207,39 +207,53 @@ self_update() { return fi - log "Newer installer found for ${VERSION}. Re-executing..." - chmod +x "${tmp_script}" + log "Newer installer found for ${VERSION}. Updating ${SCRIPT_PATH} and re-executing..." + install -m 0755 "${tmp_script}" "${SCRIPT_PATH}" + rm -f "${tmp_script}" # Export current env vars to the new script export IS_SELF_UPDATE="true" export VERSION HOSTNAME_FQDN HTTP_PORT HTTPS_PORT DATA_DIR BIN_PATH CONFIG_DIR ENV_FILE SERVICE_USER SERVICE_GROUP export SPOTIFY_CLIENT_ID SPOTIFY_CLIENT_SECRET SPOTIFY_REDIRECT_URI MGMT_USERNAME MGMT_PASSWORD - exec "${tmp_script}" "$@" + exec "${SCRIPT_PATH}" "$@" } write_env_file() { - log "Writing env file: ${ENV_FILE}" - cat > "${ENV_FILE}" <> "${ENV_FILE}" + done + else + for entry in "${vars[@]}"; do + local key="${entry%%=*}" + local val="${entry#*=}" + if ! grep -q "^${key}=" "${ENV_FILE}"; then + echo "${key}=${val}" >> "${ENV_FILE}" + fi + done + fi -SPOTIFY_CLIENT_ID=${SPOTIFY_CLIENT_ID} -SPOTIFY_CLIENT_SECRET=${SPOTIFY_CLIENT_SECRET} -SPOTIFY_REDIRECT_URI=${SPOTIFY_REDIRECT_URI} - -MGMT_USERNAME=${MGMT_USERNAME} -MGMT_PASSWORD=${MGMT_PASSWORD} -EOF chmod 0640 "${ENV_FILE}" # group-readable so you can add yourself to the group if desired chown root:"${SERVICE_GROUP}" "${ENV_FILE}" || true