calrepo/build.sh

51 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
getAnyPackages() {
mapfile -t pkgs < <(find -H "$PWD/any" -mindepth 1 -type f -regex '.*.pkg.tar.zst.*')
for arch in "x86_64" "aarch64"; do
cd "$arch" || { echo "Couldn't cd into '$arch'." 1>&2 && exit 1; }
for pkg in "${pkgs[@]}"; do
if [ "$dryRunFlag" = false ]; then
ln -srf "$pkg" "$(basename "$pkg")"
else
echo "ln -srf $pkg $(basename "$pkg")"
fi
done
cd .. || { echo "Couldn't cd into the parent folder." 1>&2 && exit 1; }
done
}
buildDatabase() {
for arch in "x86_64" "aarch64"; do
cd "$arch" || { echo "Couldn't cd into '$arch'." 1>&2 && exit 1; }
while read -r pkg; do
if [ "$dryRunFlag" = false ]; then
repo-add -s -n -R -k "199980CE93F18E62" calrepo.db.tar.gz "$pkg"
rm -rf -- *.old*
else
echo "repo-add -s -n -R -k calrepo.db.tar.gz $pkg"
fi
done < <(find -L -mindepth 1 -type f -regex '.*.pkg.tar.zst')
cd .. || { echo "Couldn't cd into the parent folder." 1>&2 && exit 1; }
done
}
checkParameters() {
dryRunFlag=false
while getopts ':hd' flag; do
case $flag in
h) usage && exit 0 ;;
d) dryRunFlag=true ;;
?) printf '%s: invalid option -''%s'\\n "${0##*/}" "$OPTARG" && exit 1 ;;
esac
done
}
runScript() {
checkParameters "$@"
getAnyPackages
buildDatabase
}
runScript "$@"