un outil de sondage - retour accueil
git clone git://bebou.netlib.re/kun
Log | Files | Refs | README |
commit bbab29c2c87c6a9407a578aac408218af8430384 parent 71d8d5ccf40571a004fdf1ca10d851d3c6854337 Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Fri, 20 Sep 2024 17:17:04 +0200 Vérification des paramètres obligatoires C'est moins joli que les erreurs avec die mais ça fait le taf rapidement Diffstat:
M | commands.sh | | | 19 | ++++++++++--------- |
M | utils.sh | | | 8 | ++++---- |
2 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/commands.sh b/commands.sh @@ -3,7 +3,7 @@ # kun create [text] create() { local id text - text="$1" + text="${1:?missing parameter}" id=$(mktemp -d /tmp/kun.XXXXX) \ || { _die "erreur à la création du dossier de sondage $id";return 1; } if [ -n "$text" ];then @@ -22,7 +22,7 @@ create() { # kun addanswer id votre_nom [text] addanswer() { local id name idrep repfile text - id="$1";name="$2";text="$3" + id="${1:?missing parameter}";name="${2:?missing parameter}";text="$3" _nameexists "$id" "$name" && { _die "Ce nom a déjà été pris";return 1;} repfile=$(mktemp /tmp/kun.$id/$name-XXXXX) \ @@ -53,8 +53,8 @@ addanswer() { # kun modifyanswer id id_de_réponse [text] modifyanswer() { local id idrep repfile text - id="$1";idrep="$2";text="$3" - _answerexists "$1" "$2" || { _die "Réponse n'existe pas";return 1;} + id="${1:?missing parameter}";idrep="${2:?missing parameter}";text="$3" + _answerexists "${1:?missing parameter}" "${2:?missing parameter}" || { _die "Réponse n'existe pas";return 1;} name=$(basename /tmp/kun.$id/*-$idrep | cut -d'-' -f1) repfile="/tmp/kun.$id/$name-$idrep" @@ -74,7 +74,7 @@ modifyanswer() { # kun deletequestion id deletequestion() { local id - id="$1" + id="${1:?missing parameter}" _questionexists "$id" || { _die "Sondage n'existe pas"; return 1; } rm -rf /tmp/kun.$id \ @@ -86,7 +86,7 @@ deletequestion() { # kun deleteanswer id id_réponse deleteanswer() { local id idrep - id="$1";idrep="$2" + id="${1:?missing parameter}";idrep="${2:?missing parameter}" _questionexists "$id" || { _die "Sondage n'existe pas"; return 1; } _answerexists "$id" "$idrep" || { _die "Réponse n'existe pas"; return 1; } @@ -99,7 +99,7 @@ deleteanswer() { # kun results id results() { local id - id="$1" + id="${1:?missing parameter}" _questionexists "$id" || { _die "Sondage n'existe pas"; return 2; } _ananswerexists "$id" || { _die "Le sondage $id n'a pas encore de réponse"; return 1; } @@ -113,7 +113,7 @@ results() { # kun getpeople id getpeople() { local id answers - id="$1" + id="${1:?missing parameter}" _questionexists "$id" || { _die "Sondage n'existe pas"; return 2; } _ananswerexists "$id" || { _die "Le sondage $id n'a pas encore de réponse"; return 1; } @@ -128,7 +128,8 @@ getpeople() { # kun getanswer id nom_de_la_personne getanswer() { local id name - id="$1";name="$2" + id="${1:?missing parameter}";name="${2:?missing parameter}" + _nameexists "$id" "$name" \ || { _die "Cette personne n'a pas répondu à ce sondage";return 1;} cat /tmp/kun.$id/$name-* diff --git a/utils.sh b/utils.sh @@ -6,22 +6,22 @@ _die() { echo "$red$@$norm" >&2 ;return 1; } _success() echo "$green$@$norm" >&2 -_questionexists() { local id;id="$1";[ -d "/tmp/kun.$id" ]; } +_questionexists() { local id;id="${1:?missing parameter}";[ -d "/tmp/kun.$id" ]; } _nameexists() { - local id name;id="$1";name="$2" + local id name;id="${1:?missing parameter}";name="${2:?missing parameter}" [ $(find /tmp/kun.$id/ -name "$name-*" | wc -l) -gt "0" ] } _answerexists() { - local id idrep;id="$1";idrep="$2" + local id idrep;id="${1:?missing parameter}";idrep="${2:?missing parameter}" [ $(find /tmp/kun.$id/ -name "*-$idrep" | wc -l) -gt "0" ] } # 2 si le sondage n'existe pas _ananswerexists() { local id answers - id="$1" + id="${1:?missing parameter}" answers=$(find /tmp/kun.$id -type f -not -name question) [ -n "$answers" ] }