Faire des qcm simplement - retour accueil
git clone git://bebou.netlib.re/qcm
Log | Files | Refs | README |
commit b53f12851d5ae309b694958efbac340f4bac152f parent f78187719a48d04d404fad2133b914e3758ddd06 Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Sat, 9 Nov 2024 15:57:22 +0100 Documenter cater dans ssh qcm marche pas Pourquoi ? Parce que pour attendre l'input de la personne qui lance le questionnaire on fait une lecture d'une ligne dans la tty : read _ < /dev/tty Lorsqu'on lance ça en local aucun souci : cat questionnaire | qcm qcm lit le questionnaire depuis stdin mais lorsqu'il rencontre les read il lit dans la tty. C'est bien l'input dans le terminal (appuyer sur entrée par ex) qui va donner à manger à read, pas le pipe. Le souci survient donc lorsque l'on fait ceci : cat questionnaire | ssh -t bebou qcm SSH n'a pas de problème à "brancher" la stdin locale sur celle distante et permettre aux inputs sur le terminal local de piloter le programme lancé sur le serveur si la stdin local est un terminal. Sauf que dans notre cas la stdin est un pipe et donc pas un terminal. On a le même souci si l'on fait : echo "1\n2\n3\n" | ssh -t bebou fzy | tac On récupère le message Pseudo-terminal will not be allocated because stdin is not a terminal Alors quelle solution ? Pour le moment il faut séparer l'opération en deux. D'abord uploader le fichier puis lancer qcm de façon à ce que stdin soit la tty locale : cat questionnaire | ssh bebou 'cat > questionnaire' ssh bebou '< questionnaire qcm' Ca peut se scripter, c'est pas bien méchant, faut juste éventuellement se rappeler de supprimer le fichier ensuite. Je vais tout de même chercher un moyen de le faire en une commande. Diffstat:
M | README | | | 1 | + |
M | qcm.sh | | | 2 | +- |
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/README b/README @@ -73,6 +73,7 @@ gnuplot : cat questionnaire.qcm | qcm -g Lancer un questionnaire sur un serveur équipé de `qcm` : +**Ne fonctionne pas encore** cat questionnaire.qcm | ssh -t user@server qcm diff --git a/qcm.sh b/qcm.sh @@ -15,7 +15,7 @@ usage() <<-. cat qcm -u http://monsite.com # modifier l'affichage de l'url qcm -l /var/log/httpd/logs # changer le chemin du log parcouru cat mon-questionnaire.qcm | qcm # lancer le questionnaire .qcm - cat mon-questionnaire.qcm | ssh compte@serveur qcm # le lancer à distance + cat mon-questionnaire.qcm | ssh compte@serveur qcm # le lancer à distance mais ne fonctionne pas encore ! Pour une explication plus détaillée voir le README ou http://arthur.bebou.netlib.re/qcm