summaryrefslogtreecommitdiff
path: root/scripts/sync
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-05-28 14:24:58 -0400
committerAndrew Opalach <andrew@akon.city> 2025-05-28 14:24:58 -0400
commita28487fe6fbac72c7b1a752acab42dcc6ab46476 (patch)
treec3b1b9b751dd5e96b4afc835decf14ce38fd35f8 /scripts/sync
parent75ad6c3fcad1f19c4f4f5c345fbb43ce80d9c461 (diff)
downloaddotfiles-a28487fe6fbac72c7b1a752acab42dcc6ab46476.tar.gz
dotfiles-a28487fe6fbac72c7b1a752acab42dcc6ab46476.tar.bz2
dotfiles-a28487fe6fbac72c7b1a752acab42dcc6ab46476.zip
Post server fs corruption
Diffstat (limited to 'scripts/sync')
-rwxr-xr-xscripts/sync/diff.sh8
-rwxr-xr-xscripts/sync/pull.sh34
-rwxr-xr-xscripts/sync/push.sh34
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