51 lines
1.5 KiB
Bash
Executable File
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 "$@"
|