#!/bin/sh SRC_BASE="$HOME/.local/src" XDG_REPO_BASE="$SRC_BASE/xdg-repo" XDG_REPO_ARCH="x86_64" handle_bin_ver_pkg_upgrade() { if [ -e PKGBUILD ]; then binary_version="$(grep "^# binary version of this package (-bin):" PKGBUILD | head -n 1 | awk '{print $8}' | sed 's/^.*\///')" if [ -n "$binary_version" ]; then cd "$SRC_BASE/$binary_version" || return git pull || return updpkgsums || return makepkg --printsrcinfo > .SRCINFO add .SRCINFO PKGBUILD || return uppkg || return git push fi fi } xdg_repo_path="$XDG_REPO_BASE/$XDG_REPO_ARCH" more_than_one_arguemt_given=0 commit_msg="updated" for file in "$@"; do # TODO: add epoch to $pkgver pkgver="$(grep "^\s*pkgver\|^\s*pkgrel" .SRCINFO | sed "s/^\s*pkgver\s*=\s*//; s/^\s*pkgrel\s*=\s*/-/"| tr -d "\n")" pkgname="${file%%-"$pkgver"*}" for old_pkg in "$xdg_repo_path/$pkgname"*.pkg.tar.zst; do if [ -e "$old_pkg" ]; then rm "$xdg_repo_path/$pkgname"*.pkg.tar.zst* # TODO: broken, use another way to break out of inner loop # break fi done if [ "$more_than_one_arguemt_given" = 0 ]; then more_than_one_arguemt_given=1 commit_msg="$commit_msg $pkgname -> $pkgver" else commit_msg="$commit_msg + $pkgname -> $pkgver" fi mv "$file" "$xdg_repo_path" done handle_bin_ver_pkg_upgrade cd "$XDG_REPO_BASE" || exit 1 git pull ./signpkgs git add . git commit -m "$commit_msg" git push