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.

93 lines
1.6 KiB

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