From ca0d8a2ab391bf8dd1a40635d8755ab428bb1f4c Mon Sep 17 00:00:00 2001 From: Chizi123 <build@jsrv.com> Date: Thu, 15 Oct 2020 08:56:03 +0000 Subject: [PATCH] added dependency checking and automatic adding. not tested --- main.sh | 38 +++++++++++++++++++++++++++++++------- 1 files changed, 31 insertions(+), 7 deletions(-) diff --git a/main.sh b/main.sh index 30b2c11..6d801b0 100755 --- a/main.sh +++ b/main.sh @@ -48,7 +48,7 @@ fi #remove old versions before build - rm *$1*.pkg.tar.* + rm *$1* #make and force rebuild if is git package # Mictosoft fonts have problems with checksums and need a seperate argument @@ -70,14 +70,20 @@ source PKGBUILD pkgs=() for i in ${pkgname[@]}; do - pkgs+=("$i-$pkgver-$pkgrel") + #pkgs+=("$i-$pkgver-$pkgrel") + pkgs+=("$(find . -mindepth 1 -maxdepth 1 -type f -name "$1*.tar.*" -not -name "*.sig" | sed 's/^\.\///')") done #Move package to repodir and add to repo db + #Dont change the database if rebuilt the same package at same release and version for i in ${pkgs[@]}; do - rm $REPODIR/$i*.pkg.tar.??* - cp $i*.pkg.tar.?? $REPODIR/ - [[ "$SIGN" == "Y" ]] && cp $i*.pkg.tar.??.sig $REPODIR/ + if [[ -f $REPODIR/$i ]]; then + pkgs=${pkgs[@]/$i} + else + rm $REPODIR/*$1* + cp $i $REPODIR/ + [[ "$SIGN" == "Y" ]] && cp $i.sig $REPODIR/ + fi done # Weird exceptions @@ -100,7 +106,7 @@ # Wait until package is at the top of the queue and add to db if [[ "$(head -n1 $REPODIR/.waitlist)" == "$1" ]]; then for i in ${pkgs[@]}; do - repo-add $([[ "$SIGN" == "Y" ]] && echo "--sign --key $KEY") $REPODIR/$REPONAME.db.tar.xz $REPODIR/$i*.pkg.tar.?? + repo-add $([[ "$SIGN" == "Y" ]] && echo "--sign --key $KEY") $REPODIR/$REPONAME.db.tar.$([ -n COMPRESSION ] || echo $COMPRESSION && echo zst) $REPODIR/$i done while true; do if [[ $(cat $REPODIR/.waitlist.lck) == 1 ]]; then @@ -117,6 +123,7 @@ break else if [[ -z "$(grep $1 $REPODIR/.waitlist)" ]]; then + # Not on waitlist for some reason, need to readd if [[ $(cat $REPODIR/.waitlist.lck) == 1 ]]; then sleep 1 else @@ -166,13 +173,30 @@ } #Add a new package to be built -#There is no name checking so be sure to put in the name correctly +#Adding build dependencies is # Usage: add [package name] function add { for i in $@; do cd $BUILDDIR + if [[ -z $(git ls-remote https://aur.archlinux.org/$i.git) ]]; then + echo "Not a package" + exit 2 + fi git clone https://aur.archlinux.org/$i.git cd $i + + #check for all build dependencies + for i in ${makedepends[@]}; do + if pacman -Si $i; then + makedepends=${makedepends[@]/$delete} + fi &>/dev/null + done + for i in ${makedepends[@]}; do + add $i + done + sudo pacman -Sy + + #Actually build wanted package build_pkg $i -f done return 0 -- Gitblit v1.9.3