fix(fileflows): use fileflows.com header for node version check

Replace GitHub API call (repo does not exist) with a HEAD request
to the fileflows.com download URL. The Content-Disposition header
contains the versioned filename, from which the release number is
parsed and compared against the local version file.

If the header is not available the node update proceeds unconditionally,
since the user explicitly invoked the update command.
This commit is contained in:
MickLesk
2026-05-28 07:40:37 +02:00
parent db5cbf74c7
commit dc49400904
+8 -8
View File
@@ -31,16 +31,16 @@ function update_script() {
exit exit
fi fi
RELEASE=$(curl -fsSL "https://api.github.com/repos/revenz/FileFlows/releases/latest" | jq -r '.tag_name' | sed 's/^v//')
CURRENT=$(cat /opt/fileflows/version 2>/dev/null | tr -d '[:space:]') CURRENT=$(cat /opt/fileflows/version 2>/dev/null | tr -d '[:space:]')
# Extract latest version from the Content-Disposition header of the download URL
RELEASE=$(curl -fsI "https://fileflows.com/downloads/zip" 2>/dev/null \
| grep -i "content-disposition" \
| grep -oP '[\d]+\.[\d]+\.[\d]+\.[\d]+' \
| head -1)
if systemctl is-enabled fileflows-node &>/dev/null && ! systemctl is-enabled fileflows &>/dev/null; then if systemctl is-enabled fileflows-node &>/dev/null && ! systemctl is-enabled fileflows &>/dev/null; then
# Node-only installation: no local server API available # Node-only installation: no local server API available
if [[ -z "$RELEASE" ]]; then if [[ -n "$RELEASE" && "$CURRENT" == "$RELEASE" ]]; then
msg_error "Failed to retrieve latest ${APP} version"
exit
fi
if [[ "$CURRENT" == "$RELEASE" ]]; then
msg_ok "No update required. ${APP} Node is already at v${CURRENT}" msg_ok "No update required. ${APP} Node is already at v${CURRENT}"
exit exit
fi fi
@@ -59,7 +59,7 @@ function update_script() {
msg_info "Starting Service" msg_info "Starting Service"
systemctl start fileflows-node systemctl start fileflows-node
msg_ok "Started Service" msg_ok "Started Service"
msg_ok "Updated successfully to v${RELEASE}!" msg_ok "Updated successfully!"
else else
# Server installation: use the local API # Server installation: use the local API
update_available=$(curl -fsSL -X 'GET' "http://localhost:19200/api/status/update-available" -H 'accept: application/json' | jq .UpdateAvailable) update_available=$(curl -fsSL -X 'GET' "http://localhost:19200/api/status/update-available" -H 'accept: application/json' | jq .UpdateAvailable)
@@ -79,7 +79,7 @@ function update_script() {
msg_info "Starting Service" msg_info "Starting Service"
systemctl start fileflows* systemctl start fileflows*
msg_ok "Started Service" msg_ok "Started Service"
msg_ok "Updated successfully to v${RELEASE}!" msg_ok "Updated successfully!"
else else
msg_ok "No update required. ${APP} is already at latest version" msg_ok "No update required. ${APP} is already at latest version"
fi fi