#!/bin/sh # MakePkg Repo-Add fn () { if ! { [ -f PKGBUILD ] || [ -h PKGBUILD ];}; then exit fi find . -maxdepth 1 -type f -name "*.pkg.tar.$ext*" -delete # Maybe failed to sign because I forget to input gpg password for a long time # May cause invalid database signature which cause invalid signature error when trying to download from repo # If this happened, maybe can be fixed by `mpra -c ~/programs/repos/fly/any/fsh-git; sudo pacman -Syy` # Maybe also need some more commands before: `cd ~/programs/repos/fly/any/repo || exit; rm fly-any* && repo-add -s -v fly-any.db.tar.gz *.zst; mpra -c ~/programs/repos/fly/any/fsh-git; sudo pacman -Syy` # So I choose to exit 1 if failed makepkg --sign -sf || exit 1 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