This commit is contained in:
Copilot 2025-10-04 06:50:36 +00:00 committed by GitHub
commit 0392fc67e1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 35 additions and 7 deletions

3
.gitignore vendored
View file

@ -1,2 +1,3 @@
src/cmd/apt_query/apt_query*
*.log
apt_query*
*.log

View file

@ -42,12 +42,7 @@ if [ -n "${add_repository}" ]; then
fi
log "Updating APT package list..."
if [[ -z "$(find -H /var/lib/apt/lists -maxdepth 0 -mmin -5)" ]]; then
sudo apt-fast update > /dev/null
log "done"
else
log "skipped (fresh within at least 5 minutes)"
fi
update_apt_lists_if_stale
log_empty_line

28
lib.sh
View file

@ -135,6 +135,34 @@ function get_tar_relpath {
fi
}
###############################################################################
# Updates APT package lists if they are stale (modified more than 5 minutes ago).
# This ensures compatibility with environments like nektos/act where package lists
# may be empty or stale. Only runs when ACT environment variable is set (nektos/act)
# to avoid slowing down normal GitHub Actions runs.
# Arguments:
# None
# Returns:
# None
###############################################################################
function update_apt_lists_if_stale {
# Only check for stale package lists when running in nektos/act
# GitHub Actions runners have fresh package lists, so skip this overhead
if [ "${ACT}" = "true" ]; then
if [[ -z "$(find -H /var/lib/apt/lists -maxdepth 0 -mmin -5 2>/dev/null)" ]]; then
log "APT package lists are stale, updating..."
if command -v apt-fast > /dev/null 2>&1; then
sudo apt-fast update > /dev/null 2>&1 || sudo apt update > /dev/null 2>&1 || true
else
sudo apt update > /dev/null 2>&1 || true
fi
log "APT package lists updated"
else
log "APT package lists are fresh (within 5 minutes), skipping update"
fi
fi
}
function log { echo "${@}"; }
function log_err { >&2 echo "${@}"; }

View file

@ -32,6 +32,10 @@ input_packages="${@:6}"
# Trim commas, excess spaces, and sort.
log "Normalizing package list..."
# Ensure APT package lists are updated if stale (for nektos/act compatibility)
update_apt_lists_if_stale
packages="$(get_normalized_package_list "${input_packages}")"
log "done"