You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IUT/vdn/bin/vdn-publish-network

99 lines
1.4 KiB

#!/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