#! /usr/bin/env bash # Publish build2 to build2.org/cppget.org (and brep.cppget.org). # # The distribution is taken from cppget.org/0/ and packages from # cppget.org/repository/. # # Usage: publish [] # usage="$0 []" owd=`pwd` trap "{ cd $owd; exit 1; }" ERR set -o errtrace # Trap in functions. function info () { echo "$*" 1>&2; } function error () { info "$*"; exit 1; } v="$(sed -n -re 's/^version: ([^.]+\.[^.]+\.[^-]+(-[ab]\.[^.+]+)?).*$/\1/p' build2-toolchain/manifest)" if [ -z "$v" ]; then error "unable to extract version build2-toolchain/manifest" fi function sync () { info "build2.org:" rsync -v -rlpt -c --copy-unsafe-links --prune-empty-dirs --delete-after \ "${@}" "cppget.org/0/$v/" "build2.org:/var/www/download.build2.org/public/$v/" rsync -v -rlpt -c --copy-unsafe-links --prune-empty-dirs --delete-after \ "${@}" "cppget.org/0/toolchain.sha256" "build2.org:/var/www/download.build2.org/public/" info "cppget.org:" etc/rep-publish cppget.org/repository/1/ cppget.org:/var/bpkg/1/ "${@}" info "brep.cppget.org:" etc/rep-publish cppget.org/repository/1/ brep.cppget.org:/var/bpkg/1/ \ "${@}" } 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 "${@}"