#! /usr/bin/env sh # https://serverfault.com/a/211083 set -e DEST="$(cat remote)" if [ ! -d $DEST ] && [[ ! $DEST =~ ":" ]]; then echo "Path $DEST does not exist." exit 1 fi ARGS=() FORCE=0 while getopts 'cfdr' opt; do case "$opt" in c) # Changes ARGS+=('--delete') ;; f) # Full ARGS+=('--checksum') ;; d) # Dry ARGS+=('--dry-run') ;; r) # Revert FORCE=1 ;; *) echo "Unknown argument" exit 1 ;; esac done if [ $FORCE = 0 ]; then ARGS+=('--update') fi rsync --archive --itemize-changes "${ARGS[@]}" ./$2 $DEST