Files
alpine-packages/scripts/apk/list-packages.sh
2026-06-07 14:30:21 +02:00

37 lines
943 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
repo_dir="${repo_root}/packages/local"
if [[ -n "${ALPINE_ARCH:-}" ]]; then
package_dirs=("${repo_dir}/${ALPINE_ARCH}")
else
package_dirs=("${repo_dir}"/*)
fi
if [[ ! -d "${repo_dir}" || ! -d "${package_dirs[0]}" ]]; then
printf 'missing local repository: packages/local\n' >&2
printf 'run: mise run apk:build-all\n' >&2
exit 1
fi
for package_dir in "${package_dirs[@]}"; do
[[ -d "${package_dir}" ]] || continue
shopt -s nullglob
apks=("${package_dir}"/*.apk)
shopt -u nullglob
if [[ "${#apks[@]}" -eq 0 ]]; then
continue
fi
printf '## %s\n' "$(basename "${package_dir}")"
for apk in "${apks[@]}"; do
printf '### %s\n' "$(basename "${apk}")"
tar -xOf "${apk}" .PKGINFO 2>/dev/null \
| sed -n '/^pkgname =/p;/^pkgver =/p;/^arch =/p;/^depend =/p;/^provides =/p;/^install_if =/p'
done
done