mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-04-28 21:30:41 +00:00
tools.func: Implement check_for_gh_tag function (#12998)
* tools.func Implement check_for_gh_tag function Adds a function to check for new GitHub tags for repositories without releases. (needed for termix / guacd-server) * Update documentation for check_for_gh_tag function
This commit is contained in:
committed by
GitHub
parent
37f2e0242d
commit
48afb6c017
@@ -2159,6 +2159,49 @@ fetch_and_deploy_gh_tag() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# Checks for new GitHub tag (for repos without releases).
|
||||||
|
#
|
||||||
|
# Description:
|
||||||
|
# - Uses get_latest_gh_tag to fetch the latest tag
|
||||||
|
# - Compares it to a local cached version (~/.<app>)
|
||||||
|
# - If newer, sets global CHECK_UPDATE_RELEASE and returns 0
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# if check_for_gh_tag "guacd" "apache/guacamole-server"; then
|
||||||
|
# fetch_and_deploy_gh_tag "guacd" "apache/guacamole-server" "/opt/guacamole-server"
|
||||||
|
# fi
|
||||||
|
#
|
||||||
|
# Notes:
|
||||||
|
# - For repos that only publish tags, not GitHub Releases
|
||||||
|
# - Same interface as check_for_gh_release
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
check_for_gh_tag() {
|
||||||
|
local app="$1"
|
||||||
|
local repo="$2"
|
||||||
|
local prefix="${3:-}"
|
||||||
|
local app_lc=""
|
||||||
|
app_lc="$(echo "${app,,}" | tr -d ' ')"
|
||||||
|
local current_file="$HOME/.${app_lc}"
|
||||||
|
|
||||||
|
msg_info "Checking for update: ${app}"
|
||||||
|
|
||||||
|
local latest=""
|
||||||
|
latest=$(get_latest_gh_tag "$repo" "$prefix") || return 1
|
||||||
|
|
||||||
|
local current=""
|
||||||
|
[[ -f "$current_file" ]] && current="$(<"$current_file")"
|
||||||
|
|
||||||
|
if [[ -z "$current" || "$current" != "$latest" ]]; then
|
||||||
|
CHECK_UPDATE_RELEASE="$latest"
|
||||||
|
msg_ok "Update available: ${app} ${current:-not installed} → ${latest}"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
msg_ok "No update available: ${app} (${latest})"
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
# INSTALL FUNCTIONS
|
# INSTALL FUNCTIONS
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user