summaryrefslogtreecommitdiff
path: root/sh/mpra
diff options
context:
space:
mode:
authorXiao Pan <gky44px1999@gmail.com>2024-02-23 03:08:52 -0800
committerXiao Pan <gky44px1999@gmail.com>2024-02-23 03:08:52 -0800
commitdd78faaf40862bd1552ec36c41374b527f747284 (patch)
treeb914f890c545db7168984f7bcc15cfc7c976c1d3 /sh/mpra
parentc808bb6ee7f77f077308a1f06f63dbee6a928f6d (diff)
Reorganize shell scripts into sh dir, consider in the future fsh will have different kinds of files
Diffstat (limited to 'sh/mpra')
-rwxr-xr-xsh/mpra44
1 files changed, 44 insertions, 0 deletions
diff --git a/sh/mpra b/sh/mpra
new file mode 100755
index 0000000..0801e55
--- /dev/null
+++ b/sh/mpra
@@ -0,0 +1,44 @@
+#!/bin/sh
+# MakePkg Repo-Add
+
+fn () {
+ if ! { [ -f PKGBUILD ] || [ -h PKGBUILD ];}; then
+ exit
+ fi
+ find . -maxdepth 1 -type f -name "*.pkg.tar.$ext*" -delete
+ makepkg --sign -sf
+ newpkg="$(find . -maxdepth 1 -type f -name "*.pkg.tar.$ext")"
+ [ -d ../repo ] || mkdir ../repo
+ mv "$newpkg" "$newpkg.sig" ../repo
+ # need manually repo-add new database for first time initialization
+ repo-add -s -v -R "$(find ../repo -maxdepth 1 -type f -name '*.db.tar.gz')" "../repo/$newpkg"
+ # seems no need to delete *.old and *.old.sig, see https://mirror.fcix.net/archlinux/core/os/x86_64/ it do include *.old
+ #find ../repo -maxdepth 1 -type f \( -name '*.old' -o -name '*.old.sig' \) -delete
+}
+
+ext=zst
+copy_any=
+
+while getopts ac opt; do
+ case $opt in
+ # arch linux arm still using .xz instead of .zst as package compression format
+ a) ext=xz;;
+ # copy arch linux fly-any repo
+ c) copy_any=1;;
+ \?) exit 1;;
+ esac
+done
+shift $((OPTIND-1))
+
+if [ $# -eq 0 ]; then
+ fn
+else
+ for dir; do
+ cd -- "$(realpath -- "$dir")" || exit
+ fn
+ done
+fi
+
+[ "$copy_any" ] && sudo rsync -vPrlt --delete ../repo/ /srv/http/mirrors/archlinux/fly/os/any
+
+upd -p