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