diff options
| author | 2025-05-28 14:24:58 -0400 | |
|---|---|---|
| committer | 2025-05-28 14:24:58 -0400 | |
| commit | a28487fe6fbac72c7b1a752acab42dcc6ab46476 (patch) | |
| tree | c3b1b9b751dd5e96b4afc835decf14ce38fd35f8 /scripts/sync | |
| parent | 75ad6c3fcad1f19c4f4f5c345fbb43ce80d9c461 (diff) | |
| download | dotfiles-a28487fe6fbac72c7b1a752acab42dcc6ab46476.tar.gz dotfiles-a28487fe6fbac72c7b1a752acab42dcc6ab46476.tar.bz2 dotfiles-a28487fe6fbac72c7b1a752acab42dcc6ab46476.zip | |
Post server fs corruption
Diffstat (limited to 'scripts/sync')
| -rwxr-xr-x | scripts/sync/diff.sh | 8 | ||||
| -rwxr-xr-x | scripts/sync/pull.sh | 34 | ||||
| -rwxr-xr-x | scripts/sync/push.sh | 34 |
3 files changed, 76 insertions, 0 deletions
diff --git a/scripts/sync/diff.sh b/scripts/sync/diff.sh new file mode 100755 index 0000000..61ff628 --- /dev/null +++ b/scripts/sync/diff.sh @@ -0,0 +1,8 @@ +#! /usr/bin/env sh +set -e +REMOTE="$(cat remote)" +if [ ! -d $REMOTE ]; then + echo "Path $REMOTE does not exist." + exit 1 +fi +diff --brief --recursive --new-file --no-dereference . $REMOTE diff --git a/scripts/sync/pull.sh b/scripts/sync/pull.sh new file mode 100755 index 0000000..1bf5b48 --- /dev/null +++ b/scripts/sync/pull.sh @@ -0,0 +1,34 @@ +#! /usr/bin/env sh + +set -e + +SOURCE="$(cat remote)/" +if [ ! -d $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 + ;; + esac +done + +if [ $FORCE = 0 ]; then + ARGS+=('--update') +fi + +rsync --archive --itemize-changes "${ARGS[@]}" $SOURCE . diff --git a/scripts/sync/push.sh b/scripts/sync/push.sh new file mode 100755 index 0000000..3adbd02 --- /dev/null +++ b/scripts/sync/push.sh @@ -0,0 +1,34 @@ +#! /usr/bin/env sh + +set -e + +DEST="$(cat remote)" +if [ ! -d $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 + ;; + esac +done + +if [ $FORCE = 0 ]; then + ARGS+=('--update') +fi + +rsync --archive --itemize-changes "${ARGS[@]}" ./ $DEST |