From 735bae3e0d17676430c6484bb1fc482e0cfd87ca Mon Sep 17 00:00:00 2001 From: Chizi123 <build@jsrv.com> Date: Thu, 15 Oct 2020 07:25:25 +0000 Subject: [PATCH] added compression option for packages and repos --- main.sh | 41 +++++++++++++++++++++++++++++++++++------ 1 files changed, 35 insertions(+), 6 deletions(-) diff --git a/main.sh b/main.sh index 6b11a67..66cc216 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 @@ -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 $REPODIR/*$1* + 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 -- Gitblit v1.9.3