summaryrefslogtreecommitdiff
path: root/rep-publish
diff options
context:
space:
mode:
Diffstat (limited to 'rep-publish')
-rwxr-xr-xrep-publish33
1 files changed, 33 insertions, 0 deletions
diff --git a/rep-publish b/rep-publish
new file mode 100755
index 0000000..8db26e0
--- /dev/null
+++ b/rep-publish
@@ -0,0 +1,33 @@
+#! /usr/bin/env bash
+
+# Publish the repository.
+#
+# Usage: publish <dir> <host>:<dir> [<rsync-options>]
+#
+# Some commonly useful rsync options:
+#
+# --dry-run
+# --progress
+#
+usage="$0 <dir> <host>:<dir> [<rsync-options>]"
+
+trap 'exit 1' ERR
+set -o errtrace # Trap in functions.
+
+function info () { echo "$*" 1>&2; }
+function error () { info "$*"; exit 1; }
+
+dir=${1%/}
+if [ -z "$dir" ]; then
+ error $usage
+fi
+shift
+
+host=$1
+if [ -z "$host" ]; then
+ error $usage
+fi
+shift
+
+rsync -v -rlpt -c --exclude '.*' --copy-unsafe-links --prune-empty-dirs \
+--delete-after $* $dir/ $host