mirror of
https://github.com/Snigdha-OS/snigdhaos-pkgbuilds.git
synced 2025-09-05 12:16:41 +02:00

Some checks are pending
Check Conventional Commit / check-commit-message (push) Waiting to run
82 lines
1.7 KiB
Bash
Executable File
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
|