kun

un outil de sondage - retour accueil

git clone git://bebou.netlib.re/kun
Log | Files | Refs | README |

kun (2610B)


      1 #! /bin/sh
      2 
      3 while getopts "h" opt;do
      4 	case $opt in
      5 		(h) help=yes;;
      6 	esac
      7 done
      8 
      9 . /usr/local/share/kun/utils.sh
     10 
     11 . /usr/local/share/kun/commands.sh
     12 
     13 [ "$help" = "yes" ] \
     14 	&& { echo "Les commandes dispos : \n"
     15 	     grep -E -B3 "^[a-zA-Z]+ *\(\) *{ *$" /usr/local/share/kun/commands | grep -v ^$
     16 		 exit 0;
     17 	   }
     18 
     19 # Probablement pas safe mais pratique
     20 #[ "$(type $1)" = "$1 is a shell function" ] \
     21 #	&& { eval "$(echo $@ | cut -d';' -f1)" && exit 0 || exit 1;}
     22 
     23 # Probablement safe mais fastidieux
     24 if [ -n "$1" ];then
     25 	case "$1" in
     26 		(create)         create         "$2"      && exit 0 || exit 1;;
     27 		(addanswer)      addanswer      "$2" "$3" && exit 0 || exit 1;;
     28 		(modifyanswer)   modifyanswer   "$2" "$3" && exit 0 || exit 1;;
     29 		(deletequestion) deletequestion "$2"      && exit 0 || exit 1;;
     30 		(deleteanswer)   deleteanswer   "$2" "$3" && exit 0 || exit 1;;
     31 		(results)        results        "$2"      && exit 0 || exit 1;;
     32 		(getpeople)      getpeople      "$2"      && exit 0 || exit 1;;
     33 		(getanswer)      getanswer      "$2" "$3" && exit 0 || exit 1;;
     34 		(*)              _die "Commande n'existe pas";exit 1;;
     35 	esac
     36 fi
     37 
     38 
     39 while [ ! "$k" = "quitter" ];do
     40 
     41 	t="";l=""
     42 	k=$(<<-. fzy
     43 	quitter
     44 	créer un sondage
     45 	répondre à un sondage
     46 	consulter un sondage
     47 	supprimer un sondage
     48 	supprimer une réponse
     49 	.
     50 	)
     51 
     52 	case $k in
     53 		("créer un sondage")
     54 			create "$id" ;;
     55 		("répondre à un sondage")
     56 			read -p "id du sondage : " id
     57 			_questionexists "$id" || { _die "Sondage n'existe pas"; continue; }
     58 			l=$(<<-. fzy
     59 				ajouter une réponse
     60 				modifier une réponse
     61 			.
     62 			)
     63 			case $l in
     64 				("ajouter une réponse") 
     65 					read -p "votre nom : " name
     66 					while ! addanswer "$id" "$name";do
     67 						read -p "votre nom : " name
     68 					done ;;
     69 				("modifier une réponse")
     70 					read -p "id de la réponse : " idrep
     71 					modifyanswer "$id" "$idrep" ;;
     72 			esac ;;
     73 		("consulter un sondage")
     74 			read -p "id du sondage : " id
     75 			_questionexists "$id" || { _die "Sondage n'existe pas"; continue; }
     76 			while [ ! "$t" = "quitter" ];do
     77 				t=$(<<-. fzy
     78 					quitter
     79 					toutes
     80 					une personne
     81 				.
     82 				)
     83 				case $t in
     84 					("toutes")
     85 						results "$id" ;;
     86 					("une personne")
     87 						while [ ! "$pers" = "quitter" ];do
     88 							pers=$(getpeople "$id" | sed '1i\quitter' | fzy)
     89 							[ "$pers" != "quitter" ] && getanswer "$id" "$pers"
     90 						done;pers="";;
     91 				esac
     92 			done ;;
     93 		("supprimer un sondage")
     94 			read -p "id du sondage : " id
     95 			deletequestion "$id" ;;
     96 		("supprimer une réponse")
     97 			read -p "id du sondage : " id
     98 			read -p "id de la réponse : " idrep
     99 			deleteanswer "$id" "$idrep";;
    100 	esac
    101 
    102 done
    103