diff --git a/bin/get b/bin/get index ebd45b1..299ffb7 100755 --- a/bin/get +++ b/bin/get @@ -20,16 +20,38 @@ if [[ -n "$3" ]]; then DESTINATION_LOCAL_DIR="$3" fi +if [[ "$REMOTE_SOURCE_DIR" = /* ]]; then + IS_ABSOLUTE=true +else + IS_ABSOLUTE=false +fi + + echo "ARCHIVE=$ARCHIVE" echo "REMOTE_USER=$REMOTE_USER" echo "HOST=$HOST" echo "REMOTE_SOURCE_DIR=$REMOTE_SOURCE_DIR" echo "DESTINATION_LOCAL_DIR=$DESTINATION_LOCAL_DIR" +REMOTE_BASE_DIR="" + +if $IS_ABSOLUTE; then + REMOTE_BASE_DIR="/" +else + REMOTE_BASE_DIR=/home/$REMOTE_USER +fi + # Example that works # ssh debian@gurgul.org "tar --zstd -cf - -C /home/debian .dat" | tar --zstd -xf - -C . # get debian@gurgul.org .dat -TAR_COMMAND="tar --zstd -cf - -C /home/$REMOTE_USER $REMOTE_SOURCE_DIR" -ssh $REMOTE_USER@$HOST $TAR_COMMAND | tar --zstd -xf - -C $DESTINATION_LOCAL_DIR \ No newline at end of file +# get --archive debian@gurgul.org /etc + +TAR_COMMAND="tar --zstd -cf - -C $REMOTE_BASE_DIR $REMOTE_SOURCE_DIR" + +if $ARCHIVE; then + ssh $REMOTE_USER@$HOST $TAR_COMMAND > "$DESTINATION_LOCAL_DIR/$(basename "$REMOTE_SOURCE_DIR")-$(date +"%d-%m-%Y").tar.zst" +else + ssh $REMOTE_USER@$HOST $TAR_COMMAND | tar --zstd -xf - -C $DESTINATION_LOCAL_DIR +fi \ No newline at end of file