alexylem / jarvis

Jarvis.sh is a simple configurable multi-lang assistant.
http://openjarvis.com
MIT License
805 stars 197 forks source link

Proposer d'envoyer résultat console directement sur mon email #17

Closed alexylem closed 8 years ago

alexylem commented 8 years ago

Pour aider les investigation

remjou1 commented 8 years ago

euh... je comprend pas le titre...

alexylem commented 8 years ago

Le but de cette fonctionnalité est de permettre aux utilisateurs, lorsqu'ils ont un problème avec jarvis, de lancer en mode troubleshooting et à l'arrêt de Jarvis envoyer le résultat (ce qui est affiché sur la console) directement sur mon email (pour que je puisse investiguer). Afin de vous épargner des copier coller 😄

remjou1 commented 8 years ago

ah oui ! bonne idée !! a ce moment la faudrait peu etre stocker le résultat du troobleshooting mode dans une variable et d'envoyer le contenu de la variable avec la commande "mail" non ?

alexylem commented 8 years ago

Quelque-chose comme ca. Ou alors générer une issue dans Github, je verrai ce qui est possible.

remjou1 commented 8 years ago

ouais mais pour générer une issue c'est chiant non ? faut mettre un titre et du texte qui commante le problème ? a ce moment la une fois le troobleshooting mode terminé demander a l'utilisateur un titre et un commentaire ? et ensuite pour créer une issue github faut une comande ou je ne sais quoi non ?

alexylem commented 8 years ago

C'est pour ca que je dis que je verrai ce qui est possible. L'idée est la, l'issue est créée pour ne pas l'oublier. Si tu veux le développer toi même et contribuer au projet n'hésites pas 😄

remjou1 commented 8 years ago

a priori on pourrait créer une commande (ou plutot un script qui lande le tr-mod) et faire var=$le_script non ? on a déja la variable aintenant on l'envoie par mail (asser facile) ou on créer une issue github (ça c'est une autre paire de manche... peu-etre existe-t-il une api pour ça ?) avec cette même variable...

alexylem commented 8 years ago

Oui il existe des API pour Github. L'idée de tout mettre dans la variable n'est pas top car l'utilisateur ne verra pas ce qu'il se passe à la console. Je pense que la solution est plus compliquée que ca.

remjou1 commented 8 years ago

ou alors de crer le script avec tout le blabla du tr-mod ainsi l'utilisateur voit et a la fin du script on met var=$le_script a ce moment-la tout le monde et content non ?

alexylem commented 8 years ago

mmmh je crois pas que ca soit aussi simple 😄 en fait techniquement on ne peut pas récupérer ce qui est affiché sur la console (en tout cas pas directement), il faudrait envoyer dans un fichier et afficher le contenu du fichier avec une boucle. Mais si tu te sens de faire un prototype n'hésites pas.

remjou1 commented 8 years ago

mmh.. oui pour le bash c'est ok mais voila... je veux bien faire un petit prototype pour tester mais faudrait que j'ai accèes au code du tr-mode non ?

remjou1 commented 8 years ago

d'ailleurs on peu faire ce que j'ai dit avec de vrai commande : pi@raspberrypi ~/jarvis $ var=lsusb pi@raspberrypi ~/jarvis $ $var Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 2001:330f D-Link Corp. Bus 001 Device 005: ID 058f:6254 Alcor Micro Corp. USB Hub Bus 001 Device 012: ID 046d:0825 Logitech, Inc. Webcam C270 Bus 001 Device 011: ID 0738:1705 Mad Catz, Inc. Bus 001 Device 009: ID 1c4f:0016 SiGma Micro Bus 001 Device 010: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader

remjou1 commented 8 years ago

après avec un script je sais pas... je vais vérif...

remjou1 commented 8 years ago

j'ai vérifié c'est tout bon !! voila ce que j'ai fait :

lsusb var=./le_script.sh

je l'ai rendu executable et j'ai fait :

pi@raspberrypi ~ $ ./le_script.sh Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 2001:330f D-Link Corp. Bus 001 Device 005: ID 058f:6254 Alcor Micro Corp. USB Hub Bus 001 Device 012: ID 046d:0825 Logitech, Inc. Webcam C270 Bus 001 Device 011: ID 0738:1705 Mad Catz, Inc. Bus 001 Device 009: ID 1c4f:0016 SiGma Micro Bus 001 Device 010: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader

(ça me donne donc le résulat du script)

et je regarde la valeur de la varible var :

pi@raspberrypi ~ $ $var Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 2001:330f D-Link Corp. Bus 001 Device 005: ID 058f:6254 Alcor Micro Corp. USB Hub Bus 001 Device 012: ID 046d:0825 Logitech, Inc. Webcam C270 Bus 001 Device 011: ID 0738:1705 Mad Catz, Inc. Bus 001 Device 009: ID 1c4f:0016 SiGma Micro Bus 001 Device 010: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader

ET VOILA TOUT EST BON !!! YA PLUS QU'A...

alexylem commented 8 years ago

Bon, sans vouloir te vexer, je crois que je ne vais pas suivre tes conseils car il semble que tes connaissances en bash sont plutôt limitées 😕 . Dans l'exemple que tu donnes tu lances le script 2 fois (avec en plus un appel récursif j'ose même pas imaginer ce qu'il se passe en réalité). Cette approche ne conviendra pas dans le cas présent car l'utilisateur devra tout faire 2 fois... Je pense que je vais plutôt me fier à mon idée initiale, merci quand même d'avoir essayé 👍

remjou1 commented 8 years ago

pas de problèmes fait comme tu veux... non le bash ça me conait mais j'ai pas voulu trop me fatiquer pour cette petite fonctionnalitée a vraid dire je me suis pas foulé et j'aurais pu plus y réfléchir...

ps: merci pour le lien mais j'ai pas besoin de toi pour savoir ce qu'est un appel récursif...

alexylem commented 8 years ago

Voila comment faire pour afficher à la fois sur la console et dans un fichier: http://stackoverflow.com/questions/418896/how-to-redirect-output-to-a-file-and-stdout

ls -lR / 2>&1 | tee output.file
alexylem commented 8 years ago

J'ai remarqué qu'on pouvait aussi pré-remplir automatiquement le titre et la description d'un issue Github: https://github.com/alexylem/jarvis/issues/new?title=foo&body=bar Mais cela nécessite d'avoir un browser pour cliquer sur le bouton Create. Donc cela ne fonctionnera pas pour ceux comme moi qui utilisent jarvis depuis SSH.

remjou1 commented 8 years ago

tiens je cnnaissais pas pour l'enregistrement de la commande... en même temps j'ai pas trop cherché

remjou1 commented 8 years ago

en fait en quoi cela est dérengeant de devoir cliquer sur le bouton create ? autant tout simplement faire :

iceweasel https://github.com/alexylem/jarvis/issues/new?title=foo&body=bar

et c'est tout on a plus qu'a cliquer sur create

alexylem commented 8 years ago

Regarde je ai écrit dans mon précédent commentaire pourquoi:

Mais cela nécessite d'avoir un browser pour cliquer sur le bouton Create. Donc cela ne fonctionnera pas pour ceux comme moi qui utilisent jarvis depuis SSH.

remjou1 commented 8 years ago

ah oui oups désolé... oui en effet c'est chiant

remjou1 commented 8 years ago

toujours pas de solutions ? j'imagine que non.... j'ai trouvé ça : -https://github.com/stephencelis/ghi et ça : -https://github.com/jsmits/github-cli

alexylem commented 8 years ago

Finalement je ne pense pas que je vais implémenter cette fonctionnalité, car elle n'encourage pas les utilisateurs à d'abord chercher parmi les tickets ouverts / problèmes connus.