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