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.
85 lines
1.1 KiB
85 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 [ "$DIR" != "" ]; then
|
|
if [ ! -d "$DIR" ]; then
|
|
if [ ! -d $VDN_NETWORKS_BASE_DIR/$DIR ]; then
|
|
error "Network $DIR not found"
|
|
else
|
|
DIR=$VDN_NETWORKS_BASE_DIR/$DIR
|
|
fi
|
|
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
|
|
|