summaryrefslogtreecommitdiff
path: root/publish
diff options
context:
space:
mode:
Diffstat (limited to 'publish')
-rwxr-xr-xpublish48
1 files changed, 48 insertions, 0 deletions
diff --git a/publish b/publish
new file mode 100755
index 0000000..d6baff2
--- /dev/null
+++ b/publish
@@ -0,0 +1,48 @@
+#! /usr/bin/env bash
+
+# Publish build2 to build2.org/cppget.org.
+#
+# Usage: publish [<rsync-options>]
+#
+usage="$0 [<rsync-options>]"
+
+owd=`pwd`
+trap "{ cd $owd; exit 1; }" ERR
+
+function info () { echo "$*" 1>&2; }
+function error () { info "$*"; exit 1; }
+
+v=`sed -e 's/^\(.*\)\.\(.*\)\..*$/\1.\2/' build2-toolchain/version`
+
+if [ -z "$v" ]; then
+ error "unable to extract version from `cat build2-toolchain/version`"
+fi
+
+d="build2-$v"
+
+if [ ! -d "$d" ]; then
+ error "distribution directory $d does not exist"
+fi
+
+function sync ()
+{
+ rsync -v -rlpt --copy-unsafe-links --prune-empty-dirs --delete-after $* \
+$d/ build2.org:/var/www/download.build2.org/public/$v/
+
+ cppget.org/publish cppget.org/repository/1/ cppget.org $*
+}
+
+sync --dry-run $*
+
+r=
+while [ -z "$r" ]; do
+ read -r -p "Continue? [yes/no]: " r
+
+ case "$r" in
+ yes) ;;
+ no) exit 0 ;;
+ *) r= ;;
+ esac
+done
+
+sync --progress $*