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
|
# 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 $?
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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 $*
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue