Optimize deploy

This commit is contained in:
zawz 2020-05-26 18:55:11 +02:00
parent 4f3322ed11
commit 074a91ea0a
5 changed files with 39 additions and 17 deletions

View file

@ -44,6 +44,6 @@ mv zpkg "$fullpath$DEST" || exit $?
# cleanup # cleanup
rm -rd "$tmpdir" rm -rd "$tmpdir"
# update database # update database
ssh "$ssh" sh database_update.sh || exit $? ssh "$ssh" sh database_update.sh zpkg || exit $?
# generate install script # generate install script
ssh "$ssh" sh gen_install.sh || exit $? ssh "$ssh" sh gen_install.sh || exit $?

View file

@ -14,12 +14,29 @@ which $compress >/dev/null 2>&1 || { echo "Compression '$compress' not installed
# iterate packages # iterate packages
cd "$HOME/$PKG_PATH" || exit $? cd "$HOME/$PKG_PATH" || exit $?
PKGLIST="$(ls ./*.tar.$extension)" PKGLIST="$(ls ./*.tar.$extension)"
{
for I in $PKGLIST fulllist=$(find . -name "*.tar.$extension" | sed "s|^\./||g;s|\.tar\.$extension$||g")
if [ $# -ge 1 ]
then
list=$*
else
list=$fulllist
fi
for I in $list
do do
NAME=$(echo "$I" | sed 's|\.tar\..*$||g;s|^\./||g') TIME=$(stat -c "%Y" "$I.tar.$extension")
TIME=$(stat -c "%Y" "$I") DEPS=$($pcompress -dc "$I.tar.$extension" | tar -xOf - DEPS 2>/dev/null | tr -s '\n\t ' ' ')
DEPS=$($pcompress -dc "$I" | tar -xOf - DEPS 2>/dev/null | tr -s '\n\t ' ' ') if grep -q -w "^$I" pkglist 2>/dev/null
echo "$NAME $TIME $DEPS" then
sed -i "s|^$I .*\$|$I $TIME $DEPS|g" pkglist
else
echo "$I $TIME $DEPS" >> pkglist
fi
done done
} > pkglist tmpfile="/tmp/pkglist_$(tr -cd '[:alnum:]' </dev/urandom | head -c10)"
awk '{print $1}' pkglist | sort > "$tmpfile"
for I in $(echo "$fulllist" | sort | diff --new-line-format="" --unchanged-line-format="" "$tmpfile" -)
do
sed -i "/$I/d" pkglist
done
rm "$tmpfile"

View file

@ -45,12 +45,14 @@ deploy_folder()
then then
$pcompress -dc >/dev/null 2>&1 | tar -tf - >/dev/null 2>&1|| { echo "File '$1' is not a valid archive" && return 1; } $pcompress -dc >/dev/null 2>&1 | tar -tf - >/dev/null 2>&1|| { echo "File '$1' is not a valid archive" && return 1; }
deploy_package "$1" "$1" || return $? deploy_package "$1" "$1" || return $?
elif [ -d "$1" ] elif [ -d "$1" ] # folder
then then
tmpdirar="/tmp/zpkg_$(random_string 5)"
mkdir -p "$tmpdirar"
archive="$(getname "$1").tar.$extension" archive="$(getname "$1").tar.$extension"
package "$1" "/tmp/$archive" || return $? package "$1" "$tmpdirar/$archive" || return $?
deploy_package "/tmp/$archive" || return $? deploy_package "$tmpdirar/$archive" || return $?
rm "/tmp/$archive" rm "$tmpdirar/$archive"
else else
echo "Target '$1' doesn't exist" echo "Target '$1' doesn't exist"
fi fi
@ -58,5 +60,5 @@ deploy_folder()
update_remote_database() update_remote_database()
{ {
ssh $SSH_ADDRESS "~/database_update.sh" ssh $SSH_ADDRESS sh database_update.sh $*
} }

View file

@ -11,7 +11,7 @@ add_package_entry()
{ {
( (
cd "$PKG_PATH" cd "$PKG_PATH"
if grep -q -w "$1" installed 2>/dev/null if grep -q -w "^$1" installed 2>/dev/null
then then
$2 sed "s|$1 .*\$|$1 $(date +%s)|g" -i installed $2 sed "s|$1 .*\$|$1 $(date +%s)|g" -i installed
else else

View file

@ -121,11 +121,14 @@ list-removed)
;; ;;
deploy) deploy)
shift 1 shift 1
for I in $* unset pkglist
for I
do do
deploy_folder "$I" || exit 1 deploy_folder "$I"
pkglist="$pkglist $(getname "$I")"
done done
update_remote_database echo "$pkglist"
update_remote_database $pkglist
;; ;;
*) usage && exit 1 ;; *) usage && exit 1 ;;
esac esac