#! /usr/bin/env sh set -e SOURCE="$(cat remote)/" if [ ! -d $SOURCE ] && [[ ! $SOURCE =~ ":" ]]; then echo "Path $SOURCE 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[@]}" $SOURCE/$2 .