Skip to content

Commit bc545df

Browse files
committed
qf: create file if not exist
1 parent 36bf265 commit bc545df

File tree

2 files changed

+41
-25
lines changed

2 files changed

+41
-25
lines changed

ct/paperless-ngx.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ function update_script() {
2727
msg_error "No ${APP} Installation Found!"
2828
exit
2929
fi
30-
if check_for_gh_release "paperless-ngx" "paperless-ngx/paperless-ngx"; then
30+
if check_for_gh_release "paperless" "paperless-ngx/paperless-ngx"; then
3131
msg_info "Stopping all Paperless-ngx Services"
3232
systemctl stop paperless-consumer paperless-webserver paperless-scheduler paperless-task-queue
3333
msg_ok "Stopped all Paperless-ngx Services"

misc/tools.func

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1964,75 +1964,91 @@ check_for_gh_release() {
19641964
}
19651965
fi
19661966

1967-
# Fetch all releases (newest → oldest)
1968-
local releases
1969-
releases=$(curl -fsSL "https://api.github.com/repos/${source}/releases" |
1970-
jq -r '.[].tag_name' | sed 's/^v//')
1967+
# Fetch releases (newest → oldest)
1968+
local releases=""
1969+
releases=$(
1970+
curl -fsSL --max-time 15 \
1971+
-H 'Accept: application/vnd.github+json' \
1972+
-H 'X-GitHub-Api-Version: 2022-11-28' \
1973+
"https://api.github.com/repos/${source}/releases" |
1974+
jq -r '.[].tag_name' | sed 's/^v//'
1975+
) || true
19711976

19721977
if [[ -z "$releases" ]]; then
19731978
msg_error "Unable to fetch releases for ${app}"
19741979
return 1
19751980
fi
19761981

1982+
# Define current and latest versions
19771983
local latest current
19781984
latest=$(echo "$releases" | head -n1)
1979-
[[ -f "$current_file" ]] && current=$(<"$current_file")
1985+
current=""
1986+
if [[ -f "$current_file" ]]; then
1987+
current="$(<"$current_file")"
1988+
fi
19801989

1981-
# helper: get index (lower index = newer)
1990+
# Helper: get index of a version (lower = newer)
19821991
get_index() {
1983-
local ver="$1"
1984-
echo "$releases" | nl -ba | grep -w "$ver" | awk '{print $1}'
1992+
local ver="${1:-}"
1993+
[[ -z "$ver" ]] && return 1
1994+
local idx
1995+
idx=$(nl -ba <<<"$releases" | awk -v v="$ver" '$2==v{print $1; exit}')
1996+
[[ -n "$idx" ]] || return 1
1997+
echo "$idx"
19851998
}
19861999

1987-
# --- Pinning enabled ---
2000+
# Pinning enabled
19882001
if [[ -n "$pinned_version" ]]; then
1989-
# Ensure pin exists upstream
1990-
if ! echo "$releases" | grep -qx "$pinned_version"; then
1991-
msg_error "Pinned version v${pinned_version} not found in upstream releases!"
2002+
if ! grep -qxF "$pinned_version" <<<"$releases"; then
2003+
msg_error "Pinned version v${pinned_version} not found upstream"
19922004
return 1
19932005
fi
19942006

1995-
local pinned_index current_index
1996-
pinned_index=$(get_index "$pinned_version")
1997-
current_index=$(get_index "$current")
1998-
19992007
if [[ -z "$current" ]]; then
20002008
msg_info "${app} pinned to v${pinned_version}, no local version → install required"
20012009
CHECK_UPDATE_RELEASE="$pinned_version"
2010+
: >"$current_file"
20022011
return 0
20032012
fi
20042013

20052014
if [[ "$current" == "$pinned_version" ]]; then
20062015
if [[ "$pinned_version" == "$latest" ]]; then
2007-
msg_ok "${app} pinned to v${pinned_version} (no update needed)"
2016+
msg_ok "${app} pinned to v${pinned_version} (up to date)"
20082017
else
20092018
msg_ok "${app} pinned to v${pinned_version} (already installed, upstream v${latest})"
20102019
fi
20112020
return 1
20122021
fi
20132022

2014-
# Local older than pinned → update
2023+
local pinned_index current_index
2024+
pinned_index="$(get_index "$pinned_version" || true)"
2025+
current_index="$(get_index "$current" || true)"
2026+
20152027
if [[ -z "$current_index" ]] || [[ "$current_index" -gt "$pinned_index" ]]; then
20162028
msg_info "${app} pinned to v${pinned_version} (installed v${current:-none}) → update required"
20172029
CHECK_UPDATE_RELEASE="$pinned_version"
2030+
: >"$current_file"
20182031
return 0
20192032
fi
20202033

2021-
# Local newer than pinned → downgrade
20222034
if [[ "$current_index" -lt "$pinned_index" ]]; then
20232035
msg_info "${app} pinned to v${pinned_version} (installed newer v${current}) → downgrade required"
20242036
CHECK_UPDATE_RELEASE="$pinned_version"
2037+
: >"$current_file"
20252038
return 0
20262039
fi
2040+
2041+
return 1
20272042
fi
20282043

2029-
# --- No pin → compare against latest ---
2030-
if [[ "$current" != "$latest" ]] || [[ -z "$current" ]]; then
2044+
# No pinning → compare against latest
2045+
if [[ -z "$current" || "$current" != "$latest" ]]; then
20312046
CHECK_UPDATE_RELEASE="$latest"
20322047
msg_info "New release available: v${latest} (current: v${current:-none})"
2048+
: >"$current_file"
20332049
return 0
2034-
else
2035-
msg_ok "${app} is up to date (v${latest})"
2036-
return 1
20372050
fi
2051+
2052+
msg_ok "${app} is up to date (v${latest})"
2053+
return 1
20382054
}

0 commit comments

Comments
 (0)