#!/usr/bin/env bash set -eu FORCE=0 DRY=0 SYSTEMS="" synopsis() { cat << EOF Usage : `basename $0` [-hdf] [network] EOF } help() { cat << EOF `basename $0` dépose le réseau sur le serveur. `synopsis` Le réseau est "zipé" et est déposé sur le serveur via scp. Pour cela, la variable SSH_REPOSITORY doit avoir été fixée dans votre fichier \$HOME/.vdnrc. Exemple : SSH_REPOSITORY="toto@truc.bidule.org:public_html/files" Remarque : les fichiers "*.disk" sont préalablement compressés (.gz). -h : affiche cette aide -d : dry run -f : force : pas de demande de confirmation ! EOF } usage() { synopsis exit 1 } args() { local opt while getopts "hdf" opt; do case $opt in h) help; exit 0;; d) DRY=1;; f) FORCE=1;; ?) usage;; esac done shift $(($OPTIND - 1)) [ $# -gt 1 ] && usage [ $# = 1 ] && NETWORK=$1 || : } publishNetwork() { echo publish $1 d=$(dirname $1) b=$(basename $1) rm -f $TMPDIR/$b.zip (cd $d; umask 077 && zip --exclude \*.conf -r $TMPDIR/$b.zip $b) ls -l $TMPDIR/$b.zip if [ -z "$SSH_REPOSITORY" ]; then error "SSH_REPOSITORY est vide" fi if [ $DRY = 0 ]; then if [ $FORCE = 0 ]; then request "Publish to $SSH_REPOSITORY ? :" fi scp $TMPDIR/$b.zip $SSH_REPOSITORY fi } # Programme principal GUEST_OWNER=$USER VDN_PATH=$(readlink -f $(dirname $0)/..); . $VDN_PATH/bin/functions.sh NETWORK=$NETWORK_DIR args "$@" [ -z "$NETWORK" ] && usage publishNetwork $NETWORK