Freedesktop : Lanceur pour script (bash) avec notifications Le sujet est résolu

Demande d'aide : c'est ici.
Répondre
Avatar du membre
dezix
Modérateur
Modérateur
Messages : 997
Enregistré le : 04 juin 2016, 14:50
Diaspora* : dezix@framasphere.org
Status : Hors ligne

17 juil. 2020, 15:46

Bonjour,

Comme déjà discuté dans : Alerte : "Processus terminé" (Recherche d'un outil) sur ce même forum,

il est possible de recevoir sur le Bureau une Notification personnalisée
selon l'état de la sortie d'erreur de la commande,
en utilisant :

<ma-commande> && notify-send <paramètres succès> || notify-send <paramètres erreur>

J'ai maintenant un script qui selon les circonstances de son exécution,
se termine :
  • soit en cas de succès par : exit 0
  • soit en cas de problème par : exit 1

si j'utilise la commande :

./mon_script.sh && notify-send <paramètres succès> || notify-send <paramètres erreur>

Je reçois correctement les notifications.

Mais si pour intégrer son usage dans mon Bureau XFCE
— cela doit être indépendant du Bureau s'il respecte les conventions de freedesktop.org —
je crée un lanceur mon_script.desktop avec le code suivant :

Code : Tout sélectionner

[Desktop Entry]
Version=1.0
Type=Application
Name=Mon Script
Comment=Courte description
Exec=./mon_script.sh && notify-send <paramètres succès> || notify-send <paramètres erreur>
Icon=<nom_générique>
Terminal=true
Path=/chemin/du/répertoire/contenant_le_script

Ce lanceur permet bien l'exécution du script mais les notifications ne sont pas faites.

Noter que l'ajout d'une ligne : StartupNotify=false ou StartupNotify=true
n'y change rien.


La solution que j'ai trouvée,
consiste à créer un autre script "lanceur"
placé dans le même répertoire que mon 1er script,
nommé : exec_mon_script.sh
contenant la commande précédente,
ce qui donne :

Code : Tout sélectionner

#!/bin/bash
./mon_script.sh && notify-send <paramètres succès> || notify-send <paramètres erreur> ;
exit

et de modifier le lanceur comme cela :

Code : Tout sélectionner

[Desktop Entry]
Version=1.0
Type=Application
Name=Mon Script
Comment=Courte description
Exec=./exec_mon_script.sh
Icon=<nom_générique>
Terminal=true
Path=/chemin/du/répertoire/contenant_le_script

Cela fonctionne comme prévu,
mais je me demande et cela serait plus "propre",
s'il est possible d'éviter ce 2d script avec un lanceur adhoc ?

Merci pour vos avis.

PS:
J'ai aussi pensé à mettre dans ~/.bashrc une fonction pour lancer l'appel du script et notifications, pour créer une pseudo-commande,
mais comme cela revient aussi à introduire un 3ème élément, je trouve que ce n'est pas plus satisfaisant que le script lanceur.
Debian testing/stable - XFCE
MicP
Modérateur
Modérateur
Messages : 621
Enregistré le : 16 avr. 2016, 22:14
Status : Hors ligne

17 juil. 2020, 17:46

Bonjour dezix

Avec un seul script,
mais lancé dans son petit shell bash :

Code : Tout sélectionner

[Desktop Entry]
Version=1.0
Type=Application
Name=Mon Script
Comment=Courte description
Exec=bash -c './mon_script.sh && notify-send "titre du message Succès" "message OK" || notify-send "titre du message Erreur" "message PasOK"'
Icon=<nom_générique>
Terminal=false
Path=/chemin/du/répertoire/contenant_le_script
GenericName=Ce texte apparaîtra dans le champ Description des propriétés du lanceur affichées par Thunar
Avatar du membre
dezix
Modérateur
Modérateur
Messages : 997
Enregistré le : 04 juin 2016, 14:50
Diaspora* : dezix@framasphere.org
Status : Hors ligne

17 juil. 2020, 22:23

@MicP

Bonjour,

Décidément, tu es es mon bon samaritain :smile:

Merci!
Debian testing/stable - XFCE
MicP
Modérateur
Modérateur
Messages : 621
Enregistré le : 16 avr. 2016, 22:14
Status : Hors ligne

17 juil. 2020, 23:10

Coup de bol : Tu tombes sur des problèmes que je sais résoudre. :smile:
Avatar du membre
dezix
Modérateur
Modérateur
Messages : 997
Enregistré le : 04 juin 2016, 14:50
Diaspora* : dezix@framasphere.org
Status : Hors ligne

17 juil. 2020, 23:26

MicP a écrit :
17 juil. 2020, 23:10
Tu tombes sur des problèmes que je sais résoudre. :smile:

Oui, disons (en toute lucidité) que tu assures plutôt bien avec bash et les scripts.

Et c'est sympa de partager :023:
Debian testing/stable - XFCE
Répondre