devconf.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/bin/bash
  2. # Permette di generare la conf adatta ad uno sviluppatore per
  3. # testare il programma sul proprio computer e reimpostare la conf
  4. # per l'ambiente di LCM prima di un commit.
  5. # Ricorda di lanciarlo nella root della repo.
  6. # Modalità operativa dello script
  7. OP_MODE=
  8. # Parsa la linea di comando e determina la modalità
  9. # operativa richiesta
  10. case $1 in
  11. install)
  12. OP_MODE=1
  13. ;;
  14. uninstall)
  15. ;;
  16. *)
  17. echo "Error: Unrecognised or missing argument $1" 2>&1
  18. echo "Usage: $0 install | uninstall" 2>&1
  19. echo -e "\tinstall\t\tconfigure shiftctl for local development"
  20. echo -e "\tuninstall\treconfigure shiftctl for LCM production enviroment"
  21. exit 1
  22. esac
  23. if [ "$OP_MODE" == "1" ]
  24. then
  25. # Controlla che le conf di sviluppo non siano già installate
  26. [ -e conf_LCM ] && { echo "Warning: file conf_LCM exists. Aborting..." 2>&1; exit 1; }
  27. # modifica la directory del programma impostando quella corrente
  28. sed -i "s@SHIFTCTL_DIR=\"/usr/local/src/lcm-unimi/shiftctl\"@SHIFTCTL_DIR=\"$(pwd)\"@g" shiftctl
  29. # backup conf LCM
  30. cp conf conf_LCM
  31. # Adegua la conf alla macchina e all'utente locale
  32. cat <<-_EOF_ > "$(pwd)/conf"
  33. # File di configurazione di shiftctl
  34. # (limitati a ridefinire le variabili,
  35. # non modificare altro):
  36. # Il file che coniene i turni.
  37. # (percorso assoluto)
  38. SHIFT_FILE="$(pwd)/turni.db"
  39. # Associa ad ogni ID il nome utente di un 150.
  40. # Solamente tali utenti possono registrare
  41. # un'entrata nel file dei turni.
  42. ID_0_150="$(whoami)"
  43. ID_1_150="operator2"
  44. ID_2_150="operator3"
  45. # Il group id o il group name che identifica gli operatori.
  46. # Viene usato da shiftctl come owner group del file dei turni
  47. # e dei suoi backup. Tali file sono
  48. # leggibili e scrivibili dalla classe gruppo. Per la classe
  49. # utente i permessi sono quelli di default per il sistema.
  50. # Alla classe other tutti i permessi sono revocati
  51. OPGROUP="$(id -g)"
  52. _EOF_
  53. else
  54. # Controlla che le conf di sviluppo siano effettivamente installate
  55. [ -e conf_LCM ] || { echo "Error: file conf_LCM does not exist. Aborting..." 2>&1; exit 1; }
  56. # Reimposta la dir di LCM nel programma
  57. sed -i "s@SHIFTCTL_DIR=\"$(pwd)\"@SHIFTCTL_DIR=\"/usr/local/src/lcm-unimi/shiftctl\"@g" shiftctl
  58. # Ripristina la conf di LCM
  59. mv conf_LCM conf
  60. fi
  61. # Esci con grazia
  62. exit 0