xup 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/sh
  2. SRC_BASE="$HOME/.local/src"
  3. XDG_REPO_BASE="$SRC_BASE/xdg-repo"
  4. XDG_REPO_ARCH="x86_64"
  5. handle_bin_ver_pkg_upgrade() {
  6. if [ -e PKGBUILD ]; then
  7. binary_version="$(grep "^# binary version of this package (-bin):" PKGBUILD | head -n 1 | awk '{print $8}' | sed 's/^.*\///')"
  8. if [ -n "$binary_version" ]; then
  9. cd "$SRC_BASE/$binary_version" || return
  10. git pull || return
  11. updpkgsums || return
  12. makepkg --printsrcinfo > .SRCINFO
  13. add .SRCINFO PKGBUILD || return
  14. uppkg || return
  15. git push
  16. fi
  17. fi
  18. }
  19. xdg_repo_path="$XDG_REPO_BASE/$XDG_REPO_ARCH"
  20. more_than_one_arguemt_given=0
  21. commit_msg="updated"
  22. for file in "$@"; do
  23. # TODO: add epoch to $pkgver
  24. pkgver="$(grep "^\s*pkgver\|^\s*pkgrel" .SRCINFO | sed "s/^\s*pkgver\s*=\s*//; s/^\s*pkgrel\s*=\s*/-/"| tr -d "\n")"
  25. pkgname="${file%%-"$pkgver"*}"
  26. for old_pkg in "$xdg_repo_path/$pkgname"*.pkg.tar.zst; do
  27. if [ -e "$old_pkg" ]; then
  28. rm "$xdg_repo_path/$pkgname"*.pkg.tar.zst*
  29. # TODO: broken, use another way to break out of inner loop
  30. # break
  31. fi
  32. done
  33. if [ "$more_than_one_arguemt_given" = 0 ]; then
  34. more_than_one_arguemt_given=1
  35. commit_msg="$commit_msg $pkgname -> $pkgver"
  36. else
  37. commit_msg="$commit_msg + $pkgname -> $pkgver"
  38. fi
  39. mv "$file" "$xdg_repo_path"
  40. done
  41. handle_bin_ver_pkg_upgrade
  42. cd "$XDG_REPO_BASE" || exit 1
  43. git pull
  44. ./signpkgs
  45. git add .
  46. git commit -m "$commit_msg"
  47. git push