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.10.0