From 3b9f12201c323d52f9121fb2512953db4cc48567 Mon Sep 17 00:00:00 2001 From: Chizi123 <build@jsrv.com> Date: Thu, 15 Oct 2020 11:20:05 +0000 Subject: [PATCH] only remove archives to try and keep install files and the like --- main.sh | 66 ++++++++++++++++++++++++++++---- 1 files changed, 57 insertions(+), 9 deletions(-) diff --git a/main.sh b/main.sh index 6b11a67..7e7f635 100755 --- a/main.sh +++ b/main.sh @@ -48,7 +48,7 @@ fi #remove old versions before build - rm *$1*.pkg.tar.* + rm -f *$1*.tar.* #make and force rebuild if is git package # Mictosoft fonts have problems with checksums and need a seperate argument @@ -58,7 +58,7 @@ "$1" == "ttf-win7-fonts" ]]; then makepkg -s --noconfirm $([[ $CLEAN == "Y" ]] && echo "-c") $([[ $SIGN == "Y" ]] && echo "--sign --key $KEY") $([[ "$2" == "-f" ]] && echo -f) --skipchecksums else - makepkg -s --noconfirm $([[ $CLEAN == "Y" ]] && echo "-c") $([[ $SIGN == "Y" ]] && echo "--sign --key $KEY") $([[ "$2" == "-f" ]] && echo -f) + makepkg -s --noconfirm $([[ $CLEAN == "Y" ]] && echo "-c") $([[ $SIGN == "Y" ]] && echo "--sign --key $KEY") $([[ "$2" == "-f" ]] && echo -f) 2>&1 fi if [[ $? != 0 ]]; then #Register error @@ -66,10 +66,25 @@ return 1 fi + #Get build artifact names + source PKGBUILD + pkgs=() + for i in ${pkgname[@]}; do + #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 - rm $REPODIR/*$1*.pkg.tar.??* - cp *$1*.pkg.tar.?? $REPODIR/ - [[ "$SIGN" == "Y" ]] && cp *$1*.pkg.tar.??.sig $REPODIR/ + #Dont change the database if rebuilt the same package at same release and version + for i in ${pkgs[@]}; do + if [[ -f $REPODIR/$i ]]; then + pkgs=${pkgs[@]/$i} + else + rm -f $REPODIR/*$1*.tar.* + cp $i $REPODIR/ + [[ "$SIGN" == "Y" ]] && cp $i.sig $REPODIR/ + fi + done # Weird exceptions if [[ "$1" == "zoom" ]]; then @@ -90,7 +105,9 @@ while true; do # Wait until package is at the top of the queue and add to db if [[ "$(head -n1 $REPODIR/.waitlist)" == "$1" ]]; then - repo-add $([[ "$SIGN" == "Y" ]] && echo "--sign --key $KEY") $REPODIR/$REPONAME.db.tar.xz $REPODIR/*$1*.pkg.tar.?? + for i in ${pkgs[@]}; do + 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 sleep 1 @@ -105,6 +122,16 @@ done 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 + echo 1 > $REPODIR/.waitlist.lck + echo $1 >> $REPODIR/.waitlist + echo 0 > $REPODIR/.waitlist.lck + fi + fi sleep 10 fi done @@ -128,6 +155,8 @@ sudo pacman -Syu --noconfirm fi + #Remove waitlist and errors from old builds + rm -f $REPODIR/{.waitlist,.errors} #update every package currently stored for d in $(find $BUILDDIR -maxdepth 1 -mindepth 1 -type d) do @@ -144,13 +173,32 @@ } #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 + if [[ -n "${makedepends[@]}" ]]; then + sudo pacman -Sy + fi + + #Actually build wanted package build_pkg $i -f done return 0 @@ -160,9 +208,9 @@ # Usage remove [package name] function remove { for i in $@; do - rm -rf $BUILDDIR/$i* + rm -rf $BUILDDIR/$i repo-remove $REPODIR/$REPONAME.db.tar.xz $i - rm $REPODIR/$i* + rm -f $REPODIR/*$i* done } -- Gitblit v1.9.3