Files
snigdhaos-pkgbuilds/update_packages
CELESTIFYX 08abac9e7d
Some checks are pending
Check Conventional Commit / check-commit-message (push) Waiting to run
Refactoring repository...
2025-01-14 19:02:06 +02:00

82 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
declare -A COLORS=([RED]='\033[31m'
[GREEN]='\033[32m'
[YELLOW]='\033[33m'
[BLUE]='\033[34m'
[RESET]='\033[0m')
msgerr() {
printf "${COLORS[RED]}ERROR:${COLORS[RESET]} %s\n" "${1}" >&2
}
msg() {
printf "${COLORS[GREEN]}==>${COLORS[RESET]} %s\n" "${1}"
}
msgwarn() {
printf "${COLORS[YELLOW]}WARNING:${COLORS[RESET]} %s\n" "${1}" >&2
}
msgfolders() {
printf " ${COLORS[BLUE]}-> %s (%s)\n" "${1}" "${2}"
}
function _update_packages() {
folders=()
for entry in */; do
if [[ -d "${entry}" ]]; then
folders+=("${entry%/}")
fi
done
if [ "${#folders[@]}" -eq 0 ]; then
msgerr "Empty folders.";
exit 1
fi
IFS=$'\n' sorted_folders=($(printf "%s\n" "${folders[@]}" | sort))
unset IFS
while true; do
msg "Select folder:"
for i in "${!sorted_folders[@]}"; do
msgfolders "$((i + 1))" "${sorted_folders[$i]}"
done
read -p "$(msg "")" choice
if [[ "${choice}" =~ ^[0-9]+$ ]] && (( choice >= 1 && choice <= ${#sorted_folders[@]} )); then
break
else
msgwarn "Invalid choice."
fi
done
selected_folder="${sorted_folders[$((choice - 1))]}"
if [ ! -d "${selected_folder}/x86_64/" ]; then
msgerr "Directory '${selected_folder}/x86_64' does not exist";
exit 1
fi
cd "${selected_folder}/x86_64/" >/dev/null
rm -rf "${selected_folder}"* *".sig"
for pkg in *".pkg.tar.zst"; do
gpg --yes --detach-sign "${pkg}"
done
repo-add "${selected_folder}.db.tar.gz" *".pkg.tar.zst" || {
msgerr "Failed to add packages.";
exit 1
}
cd - >/dev/null
exit 0
}
_update_packages