123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- # Modalità "record"
- # Variabili e funzioni di supporto
- # a modalità record
- # Setta la data della nuova entry
- SHIFT_DATE="$(date +%F)"
- SHIFT_DATE_HUMAN=
- set_shift_date(){
- SHIFT_DATE_OCCUR="$(grep -c $SHIFT_DATE $SHIFT_FILE)"
- if [ $SHIFT_DATE_OCCUR -ne 0 ]
- then
- SHIFT_DATE="$SHIFT_DATE::$((SHIFT_DATE_OCCUR+1))"
- SHIFT_DATE_HUMAN="$SHIFT_DATE (shift n. $((SHIFT_DATE_OCCUR+1)) for this date)"
- else
- SHIFT_DATE_HUMAN="$SHIFT_DATE"
- fi
- return 0
- }
- # Setta il numero di ore di lavoro
- SHIFT_DURATION=
- set_shift_duration(){
- while true
- do
- echo -n "Enter the duration of your shift in hours [Use an integer. Default: 2]: "
- read SHIFT_DURATION
- echo
- # Controlla che esista tra 1 e 4, se non esiste setta il default e interrompi
- case "$SHIFT_DURATION" in
- "")
- SHIFT_DURATION=2
- break
- ;;
- 1|2|3|4)
- break
- ;;
- *)
- echo "The duration of the shift must be an integer between 1 and 4! Retry..."
- esac
- done
- return 0
- }
- # Permette di inserire un commento
- SHIFT_COMMENT=
- ENC_SHIFT_COMMENT=
- set_shift_comment(){
- echo "Something remarkable to say? [One line. Enter nothing for no comment]:"
- read -ep '>' SHIFT_COMMENT
- if [ -z "$SHIFT_COMMENT" ]
- then
- SHIFT_COMMENT="[No comment]"
- echo "No news are good news."
- else
- ENC_SHIFT_COMMENT="$(echo $SHIFT_COMMENT | base64 -w 0)"
- SHIFT_COMMENT="\"$SHIFT_COMMENT\""
- fi
- return 0
- }
- # Richiede conferma all'utente
- confirm_entry(){
- echo -e "\nshiftctl will record this new entry in shifts database file:"
- echo "date: $SHIFT_DATE_HUMAN"
- echo "operator: $RUNNER"
- echo "shift duration: ${SHIFT_DURATION}h"
- echo -e "comment: $SHIFT_COMMENT\n"
- while true
- do
- echo -n "Confirm entry? [y/n]: "
- read -n 1 BOOL
- echo
- case "$BOOL" in
- y|Y)
- ## Registra l'entrata
- echo "$SHIFT_DATE;$RUNNER;$SHIFT_DURATION;$ENC_SHIFT_COMMENT" >> $SHIFT_FILE ||\
- echoerr "Failed to record entry."
- echo -e "\n\e[0;32mEntry recorded.\e[0m Congratulations, more 150 points for you. *_*"
- break
- ;;
- n|N)
- echo -e "\nAbortion :(. Get on with your work!"
- break
- ;;
- *)
- echo -e '\nAre you retarded? Answer with "y" or "n"...'
- esac
- done
- return 0
- }
- # record mode
- record(){
- set_shift_date
- set_shift_duration
- set_shift_comment
- confirm_entry
- return 0
- }
|