diff --git a/tools/addon/prometheus-paperless-ngx-exporter.sh b/tools/addon/prometheus-paperless-ngx-exporter.sh index 7b6e44735..1229ac3f5 100644 --- a/tools/addon/prometheus-paperless-ngx-exporter.sh +++ b/tools/addon/prometheus-paperless-ngx-exporter.sh @@ -35,6 +35,32 @@ if ! grep -qE 'ID=debian|ID=ubuntu' /etc/os-release 2>/dev/null; then exit 238 fi +# ============================================================================== +# SERVICE FILE +# ============================================================================== +function write_service() { + cat <"$SERVICE_PATH" +[Unit] +Description=Prometheus Paperless NGX Exporter +Wants=network-online.target +After=network-online.target + +[Service] +User=root +EnvironmentFile=$CONFIG_PATH +ExecStart=$BINARY_PATH \\ + --paperless_url=\${PAPERLESS_URL} \\ + --paperless_auth_token_file=$AUTH_TOKEN_FILE \\ + --paperless_header 'Accept: application/json; version=9' \\ + --collectors=tag,correspondent,document_type,storage_path,task,log,group,user,status,statistics +Restart=always + +[Install] +WantedBy=multi-user.target +EOF + systemctl daemon-reload +} + # ============================================================================== # UNINSTALL # ============================================================================== @@ -57,19 +83,34 @@ function uninstall() { # UPDATE # ============================================================================== function update() { + local release_found=1 + if check_for_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter"; then + release_found=0 msg_info "Stopping service" systemctl stop prometheus-paperless-ngx-exporter msg_ok "Stopped service" fetch_and_deploy_gh_release "prom-paperless-exp" "hansmi/prometheus-paperless-exporter" "binary" "latest" - - msg_info "Starting service" - systemctl start prometheus-paperless-ngx-exporter - msg_ok "Started service" - msg_ok "Updated successfully!" - exit fi + + # Always refresh the service definition so newly introduced flags + # (e.g. --paperless_header / --collectors) are applied, regardless of + # whether a new binary release was found above. + msg_info "Refreshing service configuration" + write_service + msg_ok "Refreshed service configuration" + + msg_info "Starting service" + systemctl restart prometheus-paperless-ngx-exporter + msg_ok "Started service" + + if [[ $release_found -eq 0 ]]; then + msg_ok "Updated successfully!" + else + msg_ok "No new release found, service configuration refreshed" + fi + exit } # ============================================================================== @@ -93,24 +134,7 @@ EOF msg_ok "Created configuration" msg_info "Creating service" - cat <"$SERVICE_PATH" -[Unit] -Description=Prometheus Paperless NGX Exporter -Wants=network-online.target -After=network-online.target - -[Service] -User=root -EnvironmentFile=$CONFIG_PATH -ExecStart=$BINARY_PATH \\ - --paperless_url=\${PAPERLESS_URL} \\ - --paperless_auth_token_file=$AUTH_TOKEN_FILE -Restart=always - -[Install] -WantedBy=multi-user.target -EOF - systemctl daemon-reload + write_service systemctl enable -q --now prometheus-paperless-ngx-exporter msg_ok "Created and started service"