Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 15/09/2014, à 07:48

izd

[RÉSOLU] Thunderbird et sa ligne de commande

Bonjour @ toutes & tous,

Sous Cubuntu 14.04x64 (Ubuntu 14.04x64 + Bureau Cinnamon), il y a un problème avec Shotwell dans la commande "Envoyer à".
La fonction réponds :

Shotwell
Impossible de lancer Nautilus Send-To : L'exécution du processus fils « nautilus-sendto » a échoué (Aucun fichier ou dossier de ce type)

L'explication viendrait du fait que la commande "nautilus-sendto" soit codé en dur dans Shotwell.
M'inspirant du travail de quelqu'un d'autre sur le sujet pour le bureau XFCE, j'ai écris un script pour lancer Thunderbird avec les images sélectionnées dans Shotwell comme pièces jointes.
Le script fonctionne mais Thunderbird ne "digère" le paramètre et il se lance sans elles.
Curieusement, dans le même script, si je lance Thunderbird avec une ligne de commande codé en dur, ça fonctionne...
J'ai oublié de préciser que je n'y connais rien en script bash donc, si quelqu'un de plus chevronné que moi en bash, c'est à dire tout le monde, pouvait me dire ce qui ne va pas...
Merci d'avance !

Le script :

#!/bin/bash
# IzD Dev Labs
# 2014-09-15 ~ v0.1
#
# thunderbird -compose "attachment='~/Path1/file1,~/Path2/file2'"
#
# Debug
echo $*
# Paramètre pour les pièces jointes
r='-compose "attachment='
# Ouverture du guillement simple
r=${r}"'"
# Ajout des noms de fichiers images passés en paramètres en remplaçant l'espace par une virgule
for v in $*; do r=${r}"$v"','; done
# Suppression de la dernière virgule
r=${r%?}
# Fermeture du guillement simple
r=${r}"'"
# Fermeture du guillement double
r=${r}'"'
# Lancement de thunderbird avec les paramètres
thunderbird $r
# Debug
#thunderbird -compose "attachment='~/Images/sopwith2.png'"
echo $r
# ciao
exit 0

Dernière modification par izd (Le 15/09/2014, à 10:27)


Fiat Lux GNU/Linux !

Config 1: Mint 17.3x64~Cinnamon @ GIGABYTE GA-H77-D3H / i5-3570K - 3.4 GHz - GTX 970 / ram 2x4@1600 / ssd 120Go / 1To+1To+2To
Config 2: Mint 17.3x64~Cinnamon @ ASUS M3N78-EM / AMD Athlon 7750x2 @2.70GHz / ram 6Go / GeForce 210  / ssd 120Go + 750Go + 500Go@RAID 1

Hors ligne

#2 Le 15/09/2014, à 08:22

pingouinux

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Bonjour,
Tu peux essayer ceci :

r=;for v in "$@"; do r="$r$v,"; done
r='-compose "attachment='${r%?}'"'

thunderbird "$r"

Hors ligne

#3 Le 15/09/2014, à 08:31

izd

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Merci pingouinux de te pencher sur mon problème,

Aucun changement en mettant la variable entre guillemets...


Fiat Lux GNU/Linux !

Config 1: Mint 17.3x64~Cinnamon @ GIGABYTE GA-H77-D3H / i5-3570K - 3.4 GHz - GTX 970 / ram 2x4@1600 / ssd 120Go / 1To+1To+2To
Config 2: Mint 17.3x64~Cinnamon @ ASUS M3N78-EM / AMD Athlon 7750x2 @2.70GHz / ram 6Go / GeForce 210  / ssd 120Go + 750Go + 500Go@RAID 1

Hors ligne

#4 Le 15/09/2014, à 08:39

pingouinux

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Peux-tu montrer le script après modification, et la façon dont tu l'appelles ?

Hors ligne

#5 Le 15/09/2014, à 08:45

izd

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Peux-tu montrer le script après modification

Bin...j'ai juste entouré la variable avec des guillemets.

et la façon dont tu l'appelles ?

sh ./test-sendto.sh ~/Images/sopwith2.png

Fiat Lux GNU/Linux !

Config 1: Mint 17.3x64~Cinnamon @ GIGABYTE GA-H77-D3H / i5-3570K - 3.4 GHz - GTX 970 / ram 2x4@1600 / ssd 120Go / 1To+1To+2To
Config 2: Mint 17.3x64~Cinnamon @ ASUS M3N78-EM / AMD Athlon 7750x2 @2.70GHz / ram 6Go / GeForce 210  / ssd 120Go + 750Go + 500Go@RAID 1

Hors ligne

#6 Le 15/09/2014, à 08:49

pingouinux

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Le script doit être ceci :

#!/bin/bash

r=;for v in "$@"; do r="$r$v,"; done
r='-compose "attachment='${r%?}'"'

thunderbird "$r"

Et il faut l'appeler ainsi :

./test-sendto.sh ~/Images/sopwith2.png

Quel est le message d'erreur éventuel ?

Ajouté : Ne pas oublier de rendre le script exécutable, ou alors l'appeler ainsi :

bash ./test-sendto.sh ~/Images/sopwith2.png

Dernière modification par pingouinux (Le 15/09/2014, à 08:51)

Hors ligne

#7 Le 15/09/2014, à 09:02

izd

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Je comprend bien ta démarche, il est sûrement plus élégant, efficace ou "normal" de formuler la concaténation comme tu le décris mais mon problème ne repose pas là.
Le debug me prouve que la variable est bien formatée.
Je n'ai aucune erreur en sortie, uniquement les echo de debug.
Autre chose, le script en question n'est destiné qu'à fin de test car en réalité, le fichier final sera nommé nautilus-sendto et placé dans /usr/local/bin.
Le rendre exécutable n'est pas utile car appelé directement par Shotwell (testé).
Ne perds pas de vue que mon problème est que Thunderbird ne "digère" pas la ligne de commande qui lui est passé au travers de la variable.


Fiat Lux GNU/Linux !

Config 1: Mint 17.3x64~Cinnamon @ GIGABYTE GA-H77-D3H / i5-3570K - 3.4 GHz - GTX 970 / ram 2x4@1600 / ssd 120Go / 1To+1To+2To
Config 2: Mint 17.3x64~Cinnamon @ ASUS M3N78-EM / AMD Athlon 7750x2 @2.70GHz / ram 6Go / GeForce 210  / ssd 120Go + 750Go + 500Go@RAID 1

Hors ligne

#8 Le 15/09/2014, à 09:15

izd

Re : [RÉSOLU] Thunderbird et sa ligne de commande

A force d'y penser, cela donne l'impression que Thunderbird récupère le nom de la variable et non son contenu.
Je dis ça bien sûr en n'y connaissant rien en bash...


Fiat Lux GNU/Linux !

Config 1: Mint 17.3x64~Cinnamon @ GIGABYTE GA-H77-D3H / i5-3570K - 3.4 GHz - GTX 970 / ram 2x4@1600 / ssd 120Go / 1To+1To+2To
Config 2: Mint 17.3x64~Cinnamon @ ASUS M3N78-EM / AMD Athlon 7750x2 @2.70GHz / ram 6Go / GeForce 210  / ssd 120Go + 750Go + 500Go@RAID 1

Hors ligne

#9 Le 15/09/2014, à 09:17

pingouinux

Re : [RÉSOLU] Thunderbird et sa ligne de commande

D'après le man, -compose n'est pas une option de thunderbird.

Hors ligne

#10 Le 15/09/2014, à 09:24

izd

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Le man ne dit rien des options de la ligne de commande, j'ai trouvé l'info chez mozilla et si tu test mon script en lui passant un nom de fichier valide(avec son chemin), ça fonctionne (cf. ligne #24 du script)


Fiat Lux GNU/Linux !

Config 1: Mint 17.3x64~Cinnamon @ GIGABYTE GA-H77-D3H / i5-3570K - 3.4 GHz - GTX 970 / ram 2x4@1600 / ssd 120Go / 1To+1To+2To
Config 2: Mint 17.3x64~Cinnamon @ ASUS M3N78-EM / AMD Athlon 7750x2 @2.70GHz / ram 6Go / GeForce 210  / ssd 120Go + 750Go + 500Go@RAID 1

Hors ligne

#11 Le 15/09/2014, à 09:31

jplemoine

Re : [RÉSOLU] Thunderbird et sa ligne de commande

tu as l'option quand, en ligne de commande, tu fais

thunderbird --help

Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#12 Le 15/09/2014, à 09:35

pingouinux

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Merci jplemoine.

Hors ligne

#13 Le 15/09/2014, à 09:37

credenhill

Re : [RÉSOLU] Thunderbird et sa ligne de commande

hello
essayer en ajoutant dans le script

export DISPLAY=:0

Hors ligne

#14 Le 15/09/2014, à 09:43

izd

Re : [RÉSOLU] Thunderbird et sa ligne de commande

À quel endroit ? Tout au début comme première commande ?


Fiat Lux GNU/Linux !

Config 1: Mint 17.3x64~Cinnamon @ GIGABYTE GA-H77-D3H / i5-3570K - 3.4 GHz - GTX 970 / ram 2x4@1600 / ssd 120Go / 1To+1To+2To
Config 2: Mint 17.3x64~Cinnamon @ ASUS M3N78-EM / AMD Athlon 7750x2 @2.70GHz / ram 6Go / GeForce 210  / ssd 120Go + 750Go + 500Go@RAID 1

Hors ligne

#15 Le 15/09/2014, à 09:48

izd

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Bien tenté mais aucun changement, la composition se lance toujours sans la pièce jointe...


Fiat Lux GNU/Linux !

Config 1: Mint 17.3x64~Cinnamon @ GIGABYTE GA-H77-D3H / i5-3570K - 3.4 GHz - GTX 970 / ram 2x4@1600 / ssd 120Go / 1To+1To+2To
Config 2: Mint 17.3x64~Cinnamon @ ASUS M3N78-EM / AMD Athlon 7750x2 @2.70GHz / ram 6Go / GeForce 210  / ssd 120Go + 750Go + 500Go@RAID 1

Hors ligne

#16 Le 15/09/2014, à 09:56

pingouinux

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Il manquait quelque chose dans le script, mais ça ne suffit pas. Je continue à tester.

r=;for v in "$@"; do r="$r$v,"; done
r='-compose "attachment='\'${r%?}\''"'      # Ligne corrigée

thunderbird "$r"

Hors ligne

#17 Le 15/09/2014, à 10:05

pingouinux

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Ceci a l'air de marcher :

r=;for v in "$@"; do r="$r$v,"; done

thunderbird -compose "attachment='${r%?}'"

Ajouté :
Et ceci aussi

r=;for v in "$@"; do r="$r$v,"; done
r='-compose "attachment='\'${r%?}\''"'

eval thunderbird "$r"

Dernière modification par pingouinux (Le 15/09/2014, à 10:08)

Hors ligne

#18 Le 15/09/2014, à 10:26

izd

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Un big Up pour pingouinux !!!

Tout résidait dans le eval (et sûrement les guillemets du coup)

Maintenant, je vais pouvoir utiliser ton code pour la concaténation.

Encore un grand merci !


Fiat Lux GNU/Linux !

Config 1: Mint 17.3x64~Cinnamon @ GIGABYTE GA-H77-D3H / i5-3570K - 3.4 GHz - GTX 970 / ram 2x4@1600 / ssd 120Go / 1To+1To+2To
Config 2: Mint 17.3x64~Cinnamon @ ASUS M3N78-EM / AMD Athlon 7750x2 @2.70GHz / ram 6Go / GeForce 210  / ssd 120Go + 750Go + 500Go@RAID 1

Hors ligne

#19 Le 18/09/2014, à 07:40

Postmortem

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Salut,
Est ce que ceci ne fonctionnerait pas ??

#!/bin/bash
oldIFS=$IFS
IFS=,
thunderbird -compose "attachment='$*'"
IFS=$oldIFS

Attention, c'est du bash, il ne faut donc pas lancer le script en faisant sh monscript.sh.
Il faut le lancer ainsi : bash monscript.sh photo1.jpg photo2.jpg ou, après l'avoir rendu exécutable :

./monscript.sh photo1.jpg photo2.jpg
# ou
/chemin/monscript.sh photo1.jpg photo2.jpg

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#20 Le 18/09/2014, à 08:26

pingouinux

Re : [RÉSOLU] Thunderbird et sa ligne de commande

Bonjour Postmortem,
Ta solution est la plus simple, je viens de la tester. Il faut simplement donner le chemin complet des photos lors de l'appel.

Hors ligne

#21 Le 22/09/2014, à 14:18

izd

Re : [RÉSOLU] Thunderbird et sa ligne de commande

La solution complète ici

ps: Merci Postmortem pour l'optimisation, je la met en route dès que j'ai 5mn.


Fiat Lux GNU/Linux !

Config 1: Mint 17.3x64~Cinnamon @ GIGABYTE GA-H77-D3H / i5-3570K - 3.4 GHz - GTX 970 / ram 2x4@1600 / ssd 120Go / 1To+1To+2To
Config 2: Mint 17.3x64~Cinnamon @ ASUS M3N78-EM / AMD Athlon 7750x2 @2.70GHz / ram 6Go / GeForce 210  / ssd 120Go + 750Go + 500Go@RAID 1

Hors ligne