12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/bin/bash
- # Permette di generare la conf adatta ad uno sviluppatore per
- # testare il programma sul proprio computer e reimpostare la conf
- # per l'ambiente di LCM prima di un commit.
- # Ricorda di lanciarlo nella root della repo.
- # Modalità operativa dello script
- OP_MODE=
- # Parsa la linea di comando e determina la modalità
- # operativa richiesta
- case $1 in
- install)
- OP_MODE=1
- ;;
- uninstall)
- ;;
- *)
- echo "Error: Unrecognised or missing argument $1" 2>&1
- echo "Usage: $0 install | uninstall" 2>&1
- echo -e "\tinstall\t\tconfigure shiftctl for local development"
- echo -e "\tuninstall\treconfigure shiftctl for LCM production enviroment"
- exit 1
- esac
- if [ "$OP_MODE" == "1" ]
- then
- # Controlla che le conf di sviluppo non siano già installate
- [ -e conf_LCM ] && { echo "Warning: file conf_LCM exists. Aborting..." 2>&1; exit 1; }
- # modifica la directory del programma impostando quella corrente
- sed -i "s@SHIFTCTL_DIR=\"/usr/local/src/lcm-unimi/shiftctl\"@SHIFTCTL_DIR=\"$(pwd)\"@g" shiftctl
- # backup conf LCM
- cp conf conf_LCM
- # Adegua la conf alla macchina e all'utente locale
- cat <<-_EOF_ > "$(pwd)/conf"
- # File di configurazione di shiftctl
- # (limitati a ridefinire le variabili,
- # non modificare altro):
-
- # Il file che coniene i turni.
- # (percorso assoluto)
- SHIFT_FILE="$(pwd)/turni.db"
-
- # Associa ad ogni ID il nome utente di un 150.
- # Solamente tali utenti possono registrare
- # un'entrata nel file dei turni.
- ID_0_150="$(whoami)"
- ID_1_150="operator2"
- ID_2_150="operator3"
-
- # Il group id o il group name che identifica gli operatori.
- # Viene usato da shiftctl come owner group del file dei turni
- # e dei suoi backup. Tali file sono
- # leggibili e scrivibili dalla classe gruppo. Per la classe
- # utente i permessi sono quelli di default per il sistema.
- # Alla classe other tutti i permessi sono revocati
- OPGROUP="$(id -g)"
- _EOF_
- else
- # Controlla che le conf di sviluppo siano effettivamente installate
- [ -e conf_LCM ] || { echo "Error: file conf_LCM does not exist. Aborting..." 2>&1; exit 1; }
- # Reimposta la dir di LCM nel programma
- sed -i "s@SHIFTCTL_DIR=\"$(pwd)\"@SHIFTCTL_DIR=\"/usr/local/src/lcm-unimi/shiftctl\"@g" shiftctl
- # Ripristina la conf di LCM
- mv conf_LCM conf
- fi
- # Esci con grazia
- exit 0
|