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.

83 lines
1.1 KiB

#!/usr/bin/env bash
set -eu
synopsis() {
cat << EOF
Usage : `basename $0` [-h] networkDir
EOF
}
help() {
cat << EOF
`basename $0` définit le réseau courant. (fixe la variable i
NETWORK_DIR du fichier ~/.vdnrc).
`synopsis`
-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;
DIR=$1
}
# Programme principal
VDN_PATH=$(readlink -f $(dirname $0)/..); . $VDN_PATH/bin/functions.sh
args "$@"
if [ ! -d "$DIR" ]; then
if [ ! -d $VDN_PATH/networks/$DIR ]; then
error "Network $DIR not found"
else
DIR=$VDN_PATH/networks/$DIR
fi
fi
if [ ! -e ~/.vdnrc ]; then
cat <<EOF > ~/.vdnrc
#!/bin/bash
# Chemin du répertoire associé au réseau
NETWORK_DIR="$DIR"
EOF
else
if grep -q 'NETWORK_DIR' ~/.vdnrc; then
tmp=`mktemp`
cat ~/.vdnrc | \
sed -re 's,^NETWORK_DIR=.*$,NETWORK_DIR="'$DIR'",' > $tmp
mv $tmp ~/.vdnrc
else
cat <<EOF >> ~/.vdnrc
# Chemin du répertoire associé au réseau
NETWORK_DIR="$DIR"
EOF
fi
fi