From 61ff4f82875d11501eadeb01317cd2b58526b9ae Mon Sep 17 00:00:00 2001 From: Joel Grunbaum <joelgrun@gmail.com> Date: Fri, 23 Aug 2019 00:06:46 +0000 Subject: [PATCH] Added rysnc to remote server --- build.sh | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 101 insertions(+), 9 deletions(-) diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 index 5d64268..abc803b --- a/build.sh +++ b/build.sh @@ -1,5 +1,12 @@ #!/bin/bash +#Number of old packages to store, should be at least 1 +NUM_BACK=5 +#remote details +RUSER=joelgrun +RLOC=35.225.177.191 +RPATH=/var/www/joelg.cf/html/x86_64/ + function newest_matching_file { # Use ${1-} instead of $1 in case 'nounset' is set @@ -34,26 +41,111 @@ return 0 } -sudo pacman -Syu -cd $(dirname "$(realpath $0)") -git rm -r x86_64/*.pkg.tar.xz +function oldest_matching_file +{ + # Use ${1-} instead of $1 in case 'nounset' is set + local -r glob_pattern=${1-} + if (( $# != 1 )) ; then + echo 'usage: oldest_matching_file GLOB_PATTERN' >&2 + return 1 + fi + + # To avoid printing garbage if no files match the pattern, set + # 'nullglob' if necessary + local -i need_to_unset_nullglob=0 + if [[ ":$BASHOPTS:" != *:nullglob:* ]] ; then + shopt -s nullglob + need_to_unset_nullglob=1 + fi + + oldest_file= + for file in $glob_pattern ; do + [[ -z $oldest_file || $file -ot $oldest_file ]] \ + && oldest_file=$file + done + + # To avoid unexpected behaviour elsewhere, unset nullglob if it was + # set by this function + (( need_to_unset_nullglob )) && shopt -u nullglob + + # Use printf instead of echo in case the file name begins with '-' + [[ -n $oldest_file ]] && printf '%s\n' "$oldest_file" + + return 0 +} + +#update system +sudo pacman -Syu --noconfirm + +#go to build directory +cd $(dirname "$(realpath $0)") + +#Remove old packages +#git rm -r x86_64/* +#rm -r x86_64 +#mkdir x86_64 + +#dependencies +cd dependencies for d in `find . -maxdepth 1 -not -path '*/\.*' -type d` do + #Only do package directories if [ "$d" = "./x86_64" ] || [ "$d" = "." ]; then continue fi cd $d + #update package to latest from AUR + git pull + makepkg -si --noconfirm + if [ $? = 0 ]; then + latest=$(newest_matching_file '*.pkg.tar.xz') + while [ $NUM_BACK \< $(find . -name "*.pkg.tar.xz" | wc -l) ] + do + oldest=$(oldest_matching_file '*.pkg.tar.xz') + rm $oldest + done + cd .. + rm ../x86_64/"$d"*".pkg.tar.xz" + ln $d/$latest ../x86_64/$latest + else + cd .. + fi + # repo-add ../Chizi123.db.tar.xz ../x86_64/$latest +done +cd .. + +#main packages +for d in `find . -maxdepth 1 -not -path '*/\.*' -type d` +do + #Only do package directories + if [ "$d" = "./x86_64" ] || [ "$d" = "." ] || [ "$d" = "./dependencies" ]; then + continue + fi + cd $d + #update package to latest from AUR git pull makepkg -s --noconfirm - latest=$(newest_matching_file '*.pkg.tar.xz') - cd .. - rsync $d/$latest x86_64/$latest - repo-add ./Chizi123.db.tar.xz x86_64/$latest + if [ $? = 0 ]; then + latest=$(newest_matching_file '*.pkg.tar.xz') + while [ $NUM_BACK \< $(find . -name "*.pkg.tar.xz" | wc -l) ] + do + oldest=$(oldest_matching_file '*.pkg.tar.xz') + rm $oldest + done + cd .. + rm x86_64/"$d"*".pkg.tar.xz" + ln $d/$latest x86_64/$latest + else + cd .. + fi + # repo-add ./Chizi123.db.tar.xz x86_64/$latest done -cp Chizi123.db.tar.xz x86_64/Chizi123.db -cp Chizi123.files.tar.xz x86_64/Chizi123.files +repo-add Chizi123.db.tar.xz x86_64/* +ln Chizi123.db.tar.xz x86_64/Chizi123.db +ln Chizi123.files.tar.xz x86_64/Chizi123.files git add x86_64 git commit -m "'$(date +%d/%m/%y-%H:%M)'" git push +rsync -ah --delete x86_64 $RUSER@$RLOC:$RPATH -- Gitblit v1.9.3