shiftctl 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!/bin/bash
  2. #### Matteo Savatteri, 29-09-2018
  3. # Semplice script per registrare su
  4. # file e analizzare i turni di lavoro
  5. # dei 150
  6. ### Preambolo
  7. # Set percorso assoluto della directory
  8. # di shiftctl
  9. # (il percorso della repo di git)
  10. SHIFTCTL_DIR="/usr/local/src/lcm-unimi/shiftctl"
  11. # Source delle configurazione
  12. . "$SHIFTCTL_DIR/conf"
  13. ## Set variabili globali
  14. VERSION="2.0"
  15. RUNNER="$(whoami)"
  16. MODE="record"
  17. ## source definizione funzioni
  18. . "$SHIFTCTL_DIR/functions"
  19. ### Execution
  20. ## Init
  21. # Parsa la linea di comando
  22. while getopts ":hvtr" flag
  23. do
  24. case "$flag" in
  25. h)
  26. print_banner
  27. print_usage
  28. exit 0
  29. ;;
  30. v)
  31. print_version
  32. exit 0
  33. ;;
  34. t)
  35. MODE=grand_total
  36. break
  37. ;;
  38. r)
  39. MODE=rotate
  40. break
  41. ;;
  42. ?)
  43. print_banner
  44. print_usage
  45. echoerr "Illegal option: -$OPTARG. Please RTFM!"
  46. esac
  47. done
  48. # Presentati
  49. print_banner
  50. # Esegui i check
  51. if [ "$MODE" == "rotate" ]
  52. then
  53. check_root
  54. else
  55. check_user
  56. smartinit_dbfile
  57. fi
  58. ## Main
  59. # Seleziona la modalità corretta
  60. case "$MODE" in
  61. record)
  62. # Registra una nuova entry
  63. record
  64. ;;
  65. grand_total)
  66. # Produce il gran totale delle ore
  67. print_gtotal
  68. ;;
  69. rotate)
  70. # routa il file dei turni
  71. rotate_dbfile
  72. esac
  73. # Esci con grazia
  74. exit 0