#1 Le 09/10/2022, à 18:59
- ewfzapp
Comment rendre l’exécution d'un script un peu plus..... classe?
Salut les copains & copines,
il y a quelques temps j'ai "rédigé" un script que je lance après chaque réinstallation de machine, pour installer toutes mes applications & faire les mises à jours.
L'an dernier je l'ai agrémenté d'une interface zenity sur une partie des installations.
Bref, voici ma question:
Existe-t-il une possibilité de le rendre plus "user friendly", plus classe?
Parce que là; il y a simplement des lignes qui se succèdent dans un terminal (à part la partie zenity) et c'est un peu moche....
Je sais, c'est un peu naze comme question, mais tant qu'a faire un script, autant qu'il ai de la gueule, non???
Merci d'avance...
bonne soirée....
www.indigenecreations.fr
Hors ligne
#2 Le 09/10/2022, à 19:58
- Vobul
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Déjà tu peux grouper tes lignes avec des fonctions. Et séparer le script en sous-scripts (donc différents fichiers) pour séparer les sujets.
Mais en vrai ce que tu devrais faire c'est surtout utiliser Ansible.
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#3 Le 09/10/2022, à 20:46
- ewfzapp
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Merci pour ton retour.
Je suis débutant, je vais étudier ce que tu me propose.
Merci l'ami
www.indigenecreations.fr
Hors ligne
#4 Le 09/10/2022, à 21:55
- Amiralgaby
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Pour user friendly, j'imagine que tu cherches à amener plus de facilité à lancer ton script (User Experience) pour éviter de lancer par terminal.
Dans ce cas, j'aurais conseillé de faire un raccourci-lanceur qui permet de lancer ton script en un clic sur un lanceur (pas de terminal, juste zenity qui affiche peu à peu l'avancement de ton script).
Sinon, si ta demande est de le rendre plus beau (User Interface), tu peux mettre des images des applications ou configuration qui se produisent sur l'ordinateur où le script s'exécute zenity doit pouvoir le faire
Dernière modification par Amiralgaby (Le 10/10/2022, à 13:34)
Vive la communauté du Libre !!!
Hors ligne
#5 Le 09/10/2022, à 22:51
- Vobul
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
@Amiralgaby, on parle d'UX pour User Experience
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#6 Le 10/10/2022, à 06:08
- Compte supprimé
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Bonjour,
@Amiralgaby, on parle d'UX pour User Experience
Ah bon? J'ai un doute...
#7 Le 10/10/2022, à 13:19
- Vobul
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Il n'y a pourtant aucun doute. Tape "UI/UX" dans ton moteur de recherche préféré, tu verras que personne ne parle jamais d'UE.
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#8 Le 10/10/2022, à 13:30
- Amiralgaby
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Tu as raison Vobul, c'est une erreur de ma part. Après on se comprend
Vive la communauté du Libre !!!
Hors ligne
#9 Le 10/10/2022, à 14:17
- Compte supprimé
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Il n'y a pourtant aucun doute. Tape "UI/UX" dans ton moteur de recherche préféré, tu verras que personne ne parle jamais d'UE.
Mon doute portait sur la demande du PO qui me semblait-il porter sur comment rendre plus esthétique l'interface de son script...
Faut croire, que je n'ai pas bien interprété la demande.(ou pas?)
#10 Le 10/10/2022, à 17:04
- ar barzh paour
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
pourtant quand je tape UE je trouve par exemple "c'est quoi l'UE"
PC : B760M DS3H DDR4, 12th Gen Intel(R) Core(TM) i3-12100, RAM DDR4 8GiB -2400 Ubuntu 20.04, 22.04, 24.04 (en test )
Portable1 : Intel(R) Core(TM)2 Duo CPU T6570 @ 2.10GHz RAM 4GiB DDR2 667 MHz Ubuntu 22.04 ( en voyage )
Portable2 : T5750 @ 2.00GHz RAM 1GiB DDR2 667 Mhz Ubuntu 20.04 ( batterie HS )
stourm a ran war bep tachenn (Angela Duval) ( Je combats sur tous les fronts )
Hors ligne
#11 Le 10/10/2022, à 19:06
- MicP
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Bonjour
… Je sais, c'est un peu naze comme question, mais tant qu'a faire un script, autant qu'il ai de la gueule, non??? …
C'est pas du tout naze comme question,
mais il est impossible de te proposer une solution pertinente sans voir le contenu du script et savoir comment, où et par qui il sera lancé et ce que tu voudrais qu'il fasse.
Dernière modification par MicP (Le 10/10/2022, à 19:06)
Hors ligne
#12 Le 14/10/2022, à 14:21
- ewfzapp
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Merci pour vos retour les amis, j'apprécie vraiment.
Mon désir était juste que ça soit classe pendant le déroulé, en effet voir défiler des lignes de code à la matrix, ca fait rire 5 minutes :):)
Quand au fameux script, le voilà:
#!/bin/bash
echo Mon premier script
sudo add-apt-repository ppa:flacon/ppa
sudo add-apt-repository ppa:obsproject/obs-studio
echo "deb http://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list
wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null
sudo apt update && sudo apt install nala
sudo nala update && sudo nala upgrade
sudo nala install aptitude synaptic gdebi-core
sudo nala install unace rar unrar p7zip-rar p7zip sharutils uudeview mpack arj cabextract lzip lunzip
sudo nala install ffmpeg
sudo nala install v4l2loopback-dkms
sudo nala install obs-studio
sudo nala install nfs-common
sudo nala install snapd
sudo nala install language-pack-fr
sudo nala install language-pack-fr-base
sudo nala install language-pack-gnome-fr
sudo nala install language-pack-gnome-fr-base
sudo mkdir /media/syno_zic
sudo mkdir /media/syno_video
sudo mkdir /media/syno_dl
sudo mkdir /media/syno_sauvegarde
sudo mkdir /media/syno_photos
cat >> /etc/fstab << '_FIN_'
#synology_music
192.168.1.17:/volume1/music/ /media/syno_zic nfs defaults,user,auto,noatime,intr,rw 0 0
#syno_video
192.168.1.17:/volume1/video/ /media/syno_video nfs defaults,user,auto,noatime,intr,rw 0 0
#syno_dl
192.168.1.17:/volume1/telechargements/ /media/syno_dl nfs defaults,user,auto,noatime,intr,rw 0 0 0
#syno_photos
192.168.1.17:/volume1/homes/ewfzapp/Photos/ /media/syno_photos nfs defaults,user,auto,noatime,intr,rw 0 0 0
#syno_sauvegarde
192.168.1.17:/volume1/sauvegarde/ /media/syno_sauvegarde nfs defaults,user,auto,noatime,intr,rw 0 0 0
_FIN_
zenityresult=$(
zenity --checklist --list --title="script d'installation de mes applis" --width="800" --height="600" \
--column="selectionnez" --column="applis" \
" " "vlc" \
" " "gparted" \
" " "easytag" \
" " "gnome-tweaks" \
" " "signal" \
" " "walc" \
" " "gimp" \
" " "filezilla" \
" " "flacon" \
" " "inkscape" \
" " "shutter" \
" " "spotify" \
" " "installer les *deb du répertoire courant" \
" " "nettoyer l'installation" \
" " "mettre à jour" \
" " "redemarrer" \
)
if [[ $zenityresult == *"vlc"* ]]; then
sudo nala install vlc
fi
if [[ $zenityresult == *"gparted"* ]]; then
sudo nala install gparted
fi
if [[ $zenityresult == *"easytag"* ]]; then
sudo nala install easytag
fi
if [[ $zenityresult == *"gnome-tweaks"* ]]; then
sudo nala install gnome-tweaks
fi
if [[ $zenityresult == *"signal-desktop"* ]]; then
sudo snap install signal-desktop
fi
if [[ $zenityresult == *"walc"* ]]; then
sudo snap install walc
fi
if [[ $zenityresult == *"gimp"* ]]; then
sudo nala install gimp
fi
if [[ $zenityresult == *"filezilla"* ]]; then
sudo nala install filezilla
fi
if [[ $zenityresult == *"flacon"* ]]; then
sudo nala install flacon
fi
if [[ $zenityresult == *"inkscape"* ]]; then
sudo nala install inkscape
fi
if [[ $zenityresult == *"shutter"* ]]; then
sudo nala install shutter
fi
if [[ $zenityresult == *"spotify"* ]]; then
sudo snap install spotify
fi
if [[ $zenityresult == *"installer les *deb du répertoire courant"* ]]; then
sudo dpkg -i *.deb
fi
if [[ $zenityresult == *"nettoyer l'installation"* ]]; then
sudo nala autoremove
fi
if [[ $zenityresult == *"mettre à jour"* ]]; then
sudo nala upgrade
fi
if [[ $zenityresult == *"redemarrer"* ]]; then
sudo reboot -h now
fi
Existe t'il um moyen par exemple que dès le début il m'ouvre une fenetre (pas un terminal) ou il m'explique ce qu'il fait ou tout autre visuel sympa...
Merci encore pour votre aide.
www.indigenecreations.fr
Hors ligne
#13 Le 14/10/2022, à 15:05
- Watael
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
un script qui fait plus que UN sudo doit être exécutable uniquement par root, et donc être exécuté entièrement par sudo.
tu peux très bien exécuter le script dans un terminal sans que les commandes "polluent" ce denier, en redirigeant la sortie des commandest vers un log, ou vers /dev/null, et en faisant des echo de chaque étape à mesure qu'elles sont exécutées et /ou ont été exécutées...
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#14 Le 14/10/2022, à 17:48
- erresse
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
en faisant des echo de chaque étape à mesure qu'elles sont exécutées et /ou ont été exécutées...
Et pour que ces commentaires s'affichent dans une fenêtre et non dans le terminal, tu peux utiliser "zenity" pour les faire sortir. D'ailleurs, si tu exécutes le script dans l'environnement graphique avec "zenity", les lignes qui s'affichent dans le terminal ne se voient pas puisque celui-ci n'est pas affiché...
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#15 Le 14/10/2022, à 18:09
- MicP
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
… tu peux utiliser "zenity" pour les faire sortir. …
Tout en restant dans la fenêtre de terminal, Il y a aussi whiptail (qui n'a même pas besoin d'être installé puisqu'il l'est déjà)
que vous reconnaîtrez facilement en voyant les captures d'écran (à droite) dans la page wikipedia accessible par le lien ci-dessus
Hors ligne
#16 Le 14/10/2022, à 18:35
- erresse
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
@MicP: Je ne connaissais pas "whiptail" mais après lecture de la page que tu mets en lien, je ne vois pas trop quel est la différence ou l'avantage par rapport à "zenity"... Ces commandes y ressemblent furieusement.
Et si on veut aller plus loin avec des possibilités plus étendues que "zenity", il y a maintenant "yad" qui est super !
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#17 Le 15/10/2022, à 08:51
- MicP
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
…après lecture de la page que tu mets en lien, je ne vois pas trop quel est la différence ou l'avantage par rapport à "zenity"... Ces commandes y ressemblent furieusement. …
C'est exactement pour ça que je l'ai indiqué car comme tu l'as remarqué il fait exactement la même chose que zenity
mais sans avoir besoin d'installer un paquetage supplémentaire, (qui je l'espère ne sera pas un snap de plus) et qui devra sans doute nécessiter d'installer d'autres paquetages nécessaires à son fonctionnement en mode graphique
alors que whiptail est déjà installé par défaut sur n'importe quel variante de distribution Ubuntu (et même sur d'autres distributions).
Dernière modification par MicP (Le 15/10/2022, à 08:52)
Hors ligne
#18 Le 15/10/2022, à 11:17
- erresse
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
@MicP: Juste deux petits trucs... Sur ma variante (Ubuntu-Mate) "zenity" est installé par défaut avec le système, il n'y a rien à rajouter. Pour "whiptail", je te confirme qu'il est bien installé aussi par défaut sur ma machine, mais j'ai essayé de m'en servir et je n'ai pas pu arriver à le faire fonctionner. Une commande basique telle que
whiptail --msgbox "Coucou" 100 100
me fige la fenêtre du terminal sans rien afficher qu'un fond uniformément gris et ne répond plus au clavier.
Obligé de faire "Ctrl+Alt+C" pour reprendre la main...
Est-ce qu'il y a quelque chose à faire que j'ai loupé ou quoi ?
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#19 Le 15/10/2022, à 13:15
- MicP
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Au cas où, c'est lancé avec l'interpréteur de commandes bash
Essaye avec cette ligne de commande,
elle tiendra compte du nombre de lignes et de caractères par ligne que peut afficher ta fenêtre de terminal.
whiptail --title "Titre de la boîte" --msgbox "Le message que tu veux y mettre.\n\nIl faudra appuyer sur la touche Entrée pour fermer cette boîte de dialogue" $(($LINES-10)) $(($COLUMNS-10))
Il y a aussi celle là :
{ for ((i=0;i<=100;i+=2)); do sleep .1; echo $i; done; } | whiptail --gauge "Veuillez patienter …" 6 $(($COLUMNS-10)) 0
Dernière modification par MicP (Le 15/10/2022, à 13:35)
Hors ligne
#20 Le 15/10/2022, à 13:31
- geole
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Bonjour
Chapeau pour les deux commandes
Dernière modification par geole (Le 15/10/2022, à 13:32)
Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit, utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248
En ligne
#21 Le 15/10/2022, à 13:37
- erresse
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
OK, merci, je constate que les tailles sont donc exprimées en nombre de lignes et de caractères au lieu de pixels, il fallait le savoir ! Par ailleurs, la boite graphique s'affiche donc DANS le terminal contrairement à "zenity" ou "yad" qui affichent une boite indépendante ailleurs sur l'écran. Je m'explique mieux pourquoi tu disais dans ton message
Tout en restant dans la fenêtre de terminal, Il y a aussi whiptail
Cet utilitaire génère donc des boites en mode "graphique texte", ce qui est effectivement très différent (et du coup très intéressant) des autres utilitaires graphiques.
Il faut donc bien respecter les dimensions de la fenêtre de terminal pour que ça fonctionne, faute de quoi, rien de cohérent ne s'affiche... Merci de m'avoir fait découvrir "whiptail", ça peut être utile en mode terminal.
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#22 Le 15/10/2022, à 14:31
- MicP
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
whiptail est le programme qui est utilisé pour les boîtes de dialogues des programmes d'installation ou/et de configuration en mode texte
comme par exemple avec la commande dpkg-reconfigure
Par exemple :
dpkg-reconfigure dpkg-reconfigure
ou bien :
dpkg-reconfigure locales
=======
On peut aussi choisir les couleurs utilisées par whiptail
Voir : https://askubuntu.com/questions/776831/ … om-magenta
Dernière modification par MicP (Le 16/10/2022, à 19:08)
Hors ligne
#23 Le 15/10/2022, à 22:26
- Tawal
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Hello,
Il y a aussi dialog :
dialog --infobox Test 3 8
Edit:
Modification de la taille de la boite.
Dernière modification par Tawal (Le 15/10/2022, à 22:30)
Le savoir n'a d’intérêt que si on le transmet.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !
Hors ligne
#24 Le 16/10/2022, à 08:57
- FrancisFDZ
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
Bonjour,
Je vois 2 façons de comprendre/traiter le problème :
- esthétique finale, du point de vue utilisateur
- esthétique interne, du point de vue du concepteur/développeur
Ces deux points de vue ne sont pas exclusifs.
-- On peut avoir des raisons de se plaindre et n'avoir pas raison de se plaindre --
[Victor Hugo]
Hors ligne
#25 Le 16/10/2022, à 12:34
- pausecafé
Re : Comment rendre l’exécution d'un script un peu plus..... classe?
je te propose progress de zenity pour le rendre plus classe
chaque echo avec un chiffre change la barre de progresse (en %)
chaque echo qui commence par "# " change le texte dans la barre de progression
exemple pour le début de ton code :
(
sudo add-apt-repository ppa:flacon/ppa
echo "# ajout de ppa:obsproject/obs-studio"
sudo add-apt-repository ppa:obsproject/obs-studio
echo "10"
echo "# ajout de ppa:obsproject/obs-studio"
echo "deb http://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list
echo "20"
echo "# ajout de la clé de volian.org"
wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null
echo "30"
echo "# mise à jour et installation de nala"
sudo apt update && sudo apt install nala
echo "40"
sudo nala update && sudo nala upgrade
sudo nala install aptitude synaptic gdebi-core
sudo nala install unace rar unrar p7zip-rar p7zip sharutils uudeview mpack arj cabextract lzip lunzip
sudo nala install ffmpeg
sudo nala install v4l2loopback-dkms
sudo nala install obs-studio
sudo nala install nfs-common
sudo nala install snapd
sudo nala install language-pack-fr
sudo nala install language-pack-fr-base
sudo nala install language-pack-gnome-fr
sudo nala install language-pack-gnome-fr-base
)| zenity --progress --title="Mon premier script" --text="ajout du ppa:flacon/ppa" --percentage=0
enfin après moi je trouve que ça fait beaucoup de ligne qui peuvent être condensé
il faut surement ajouter des -y pour les apt/nala pour que ça évite de poser des questions
Hors ligne