fix tar use gzip
This commit is contained in:
parent
07981ed710
commit
39a27ac3fb
45
sync.sh
45
sync.sh
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue