Optimize deploy
This commit is contained in:
parent
4f3322ed11
commit
074a91ea0a
5 changed files with 39 additions and 17 deletions
|
|
@ -44,6 +44,6 @@ mv zpkg "$fullpath$DEST" || exit $?
|
|||
# cleanup
|
||||
rm -rd "$tmpdir"
|
||||
# update database
|
||||
ssh "$ssh" sh database_update.sh || exit $?
|
||||
ssh "$ssh" sh database_update.sh zpkg || exit $?
|
||||
# generate install script
|
||||
ssh "$ssh" sh gen_install.sh || exit $?
|
||||
|
|
|
|||
|
|
@ -14,12 +14,29 @@ which $compress >/dev/null 2>&1 || { echo "Compression '$compress' not installed
|
|||
# iterate packages
|
||||
cd "$HOME/$PKG_PATH" || exit $?
|
||||
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
|
||||
NAME=$(echo "$I" | sed 's|\.tar\..*$||g;s|^\./||g')
|
||||
TIME=$(stat -c "%Y" "$I")
|
||||
DEPS=$($pcompress -dc "$I" | tar -xOf - DEPS 2>/dev/null | tr -s '\n\t ' ' ')
|
||||
echo "$NAME $TIME $DEPS"
|
||||
TIME=$(stat -c "%Y" "$I.tar.$extension")
|
||||
DEPS=$($pcompress -dc "$I.tar.$extension" | tar -xOf - DEPS 2>/dev/null | tr -s '\n\t ' ' ')
|
||||
if grep -q -w "^$I" pkglist 2>/dev/null
|
||||
then
|
||||
sed -i "s|^$I .*\$|$I $TIME $DEPS|g" pkglist
|
||||
else
|
||||
echo "$I $TIME $DEPS" >> pkglist
|
||||
fi
|
||||
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"
|
||||
|
|
|
|||
|
|
@ -45,12 +45,14 @@ deploy_folder()
|
|||
then
|
||||
$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 $?
|
||||
elif [ -d "$1" ]
|
||||
elif [ -d "$1" ] # folder
|
||||
then
|
||||
tmpdirar="/tmp/zpkg_$(random_string 5)"
|
||||
mkdir -p "$tmpdirar"
|
||||
archive="$(getname "$1").tar.$extension"
|
||||
package "$1" "/tmp/$archive" || return $?
|
||||
deploy_package "/tmp/$archive" || return $?
|
||||
rm "/tmp/$archive"
|
||||
package "$1" "$tmpdirar/$archive" || return $?
|
||||
deploy_package "$tmpdirar/$archive" || return $?
|
||||
rm "$tmpdirar/$archive"
|
||||
else
|
||||
echo "Target '$1' doesn't exist"
|
||||
fi
|
||||
|
|
@ -58,5 +60,5 @@ deploy_folder()
|
|||
|
||||
update_remote_database()
|
||||
{
|
||||
ssh $SSH_ADDRESS "~/database_update.sh"
|
||||
ssh $SSH_ADDRESS sh database_update.sh $*
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ add_package_entry()
|
|||
{
|
||||
(
|
||||
cd "$PKG_PATH"
|
||||
if grep -q -w "$1" installed 2>/dev/null
|
||||
if grep -q -w "^$1" installed 2>/dev/null
|
||||
then
|
||||
$2 sed "s|$1 .*\$|$1 $(date +%s)|g" -i installed
|
||||
else
|
||||
|
|
|
|||
|
|
@ -121,11 +121,14 @@ list-removed)
|
|||
;;
|
||||
deploy)
|
||||
shift 1
|
||||
for I in $*
|
||||
unset pkglist
|
||||
for I
|
||||
do
|
||||
deploy_folder "$I" || exit 1
|
||||
deploy_folder "$I"
|
||||
pkglist="$pkglist $(getname "$I")"
|
||||
done
|
||||
update_remote_database
|
||||
echo "$pkglist"
|
||||
update_remote_database $pkglist
|
||||
;;
|
||||
*) usage && exit 1 ;;
|
||||
esac
|
||||
|
|
|
|||
Loading…
Reference in a new issue