fix tar use gzip

This commit is contained in:
Andrea Blankenstijn 2022-07-26 16:11:52 +02:00
parent 07981ed710
commit 39a27ac3fb
1 changed files with 21 additions and 24 deletions

45
sync.sh
View File

@ -2,45 +2,42 @@
# vi: et sw=4 ts=4:
# hsv2
# for macos
realpath() (
OURPWD=$PWD
cd "$(dirname "$1")"
LINK=$(readlink "$(basename "$1")")
while [ "$LINK" ]; do
cd "$(dirname "$LINK")"
LINK=$(readlink "$(basename "$1")")
done
REALPATH="$PWD/$(basename "$1")"
cd "$OURPWD"
echo "$REALPATH"
)
LOCAL_DIR="${2:="$HOME/goinfre/"}"
REMOTE_DIR="${3:="$HOME/sgoinfre/goinfre/"}"
ARCHIVE="${4:="$HOME/sgoinfre/goinfre.tar.gz"}"
MARKER=".sync.sh.marker"
LOCAL_MARKER="$LOCAL_DIR/$MARKER"
REMOTE_MARKER="$REMOTE_DIR/$MARKER"
LOCAL_DIR="${2:="$HOME/goinfre"}"
REMOTE_DIR="${3:="$HOME/sgoinfre/goinfre"}"
ARCHIVE="${4:="$HOME/sgoinfre/goinfre.tar.xz"}"
if [[ -d $(realpath "$LOCAL_DIR") && -d $(realpath "$REMOTE_DIR") ]]
if [[ ! ( -e "$LOCAL_DIR" && -e "$REMOTE_DIR") ]]
then
echo "ABORTING: local or remote directory missing"
exit 1
fi
if [[ $1 == "in" || -z $1 ]]
if [[ ($1 == "in" || -z $1) && (! -e "$LOCAL_MARKER" || "$LOCAL_MARKER" -ot "$REMOTE_MARKER") ]]
then
echo "sync in: $LOCAL_DIR"
if [[ -f "$ARCHIVE" ]]
then
tar xJf "$ARCHIVE" -C "$LOCAL_DIR"
tar xzf "$ARCHIVE" -C "$LOCAL_DIR"
fi
rsync -a --progress "$REMOTE_DIR/" "$LOCAL_DIR"
elif [[ $1 == "out" ]]
elif [[ $1 == "out" && (! -e "$REMOTE_MARKER" || "$REMOTE_MARKER" -ot "$LOCAL_DIR") ]]
then
echo "sync out: $REMOTE_DIR"
rsync -a --progress "$LOCAL_DIR/" "$REMOTE_DIR"
tar cJvf "$ARCHIVE" -C "$REMOTE_DIR" .
else
echo "cleaning brew"
brew autoremove
brew cleanup --prune=all
tar czf "$ARCHIVE.tmp" -C "$LOCAL_DIR" . || (echo "FATAL ERROR. EXITING"; exit 1)
mv -v "$ARCHIVE.tmp" "$ARCHIVE"
rsync -a --progress --delete-delay "$LOCAL_DIR/" "$REMOTE_DIR"
touch "$REMOTE_MARKER"
elif [[ $1 != "in" && $1 != "out" ]]
then
echo -e "parameter invalid\nsyntax: $0 {in|out} [ local [ remote ] ]"
exit 1
fi
echo "Up to date"