#!/usr/bin/env bash set -eu synopsis() { cat << EOF Usage : $(basename $0) [-h] system EOF } help() { cat << EOF $(basename $0) initialise le fichier de configuration d'un système. $(synopsis) Le fichier de configuration du système est créé à partir du modèle (config.template) du répertoire du réseau ou, à défaut, du modèle config.template du répertoire de Vdn. Pour modifier des variables du fichier de configuration consultez la commande vdn-config. Le script build du répertoire d'un réseau utilise $(basename $0). Voir aussi les fichier build des répertoire des réseaux pour des exemples de configurations. -h : affiche cette aide EOF } usage() { synopsis exit 1 } args() { local opt while getopts "h" opt; do case $opt in h) help; exit 0;; ?) usage;; esac done shift $(($OPTIND - 1)) [ $# -ne 1 ] && usage GUEST_NAME="$1" if echo "$GUEST_NAME" | grep -q '[[:space:]]'; then error "$GUEST_NAME est un nom de système invalide" fi if echo $GUEST_NAME | grep -q '/'; then error "$GUEST_NAME est un nom de système invalide" fi } setIdentOld() { tmp=$(mktemp) cat $GUEST_CONF | sed -re 's/^IDENT=.*$/IDENT='$1'/' \ > $tmp mv $tmp $GUEST_CONF 2> /dev/null } # Programme principal VDN_PATH=$(readlink -f $(dirname $0)/..); . $VDN_PATH/bin/functions.sh args "$@" #isDefined $GUEST_NAME && error "$GUEST_PATH existe déjà" GUEST_PATH="$NETWORK_DIR" GUEST_CONF="$GUEST_PATH/$1.conf" #IDENT=256 #computeNetworks config=$NETWORK_DIR/config.template [ ! -e $config ] && config=$VDN_PATH/config.template echo "Build $GUEST_NAME..." >&2 cp $config $GUEST_CONF #ident=$(vdn-find-ident) #setIdent $ident