diff --git a/bin/get b/bin/get new file mode 100755 index 0000000..ebd45b1 --- /dev/null +++ b/bin/get @@ -0,0 +1,35 @@ +ARCHIVE=false +DESTINATION_LOCAL_DIR="./" + +if [[ "$1" == "--archive" ]]; then + ARCHIVE=true + shift +fi + +if [[ $# -lt 2 ]]; then + echo "Usage: $0 [--archive] user@host remote_source_dir [local_destination_dir]" + exit 1 +fi + +USER_HOST="$1" +REMOTE_USER="${USER_HOST%@*}" +HOST="${USER_HOST#*@}" + +REMOTE_SOURCE_DIR="$2" +if [[ -n "$3" ]]; then + DESTINATION_LOCAL_DIR="$3" +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" + + +# 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