Service Menu [Réglé]
Besoin d'aide pour renvoyer le chemin d'un dossier à la commande
Logiciels / Autres logiciels

OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :
hubiC vient de mettre en place une nouvelle commande dans son application, la sauvegarde de dossier ou fichier.
La commande pour créer la sauvegarde du dossier test de mon espace perso est :
Code BASH :
hubic backup create /home/moi/Test
Pour mettre à jour la sauvegarde
Code BASH :
hubic backup update /home/moi/Test
Je veux créer un service menu (sous kde), pour que la creation de la sauvegarde se lance avec un clic droit sur le dossier.
J'ai écris ça et mis le fichier.desktop dans /home/moi/.kde4/share/kde4/services/ServiceMenus/
Code TEXT :
[Desktop Entry] Encoding=UTF-8 Type=Service ServiceTypes=KonqPopupMenu/Plugin,all/all Actions=Savetohubic [Desktop Action Savetohubic] Name=Save to hubiC Name[fr]=Sauvegarder sous hubiC Icon=hubic Exec=hubic backup create "%u"
(les " sont des ")
Et ça ne fonctionne pas !
Je vois bien le menu quand je fait un clic droit, mais quand je lance la commande, la sauvegarde ne se fait pas

Je suppose que c'est le %u qui n'est pas adapté, non ?
Quelqu'un a-t-il une idée pour résoudre mon petit problème ?
@+

Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
le %u est bon, j'ai créé le service menu que tu mets, mais modifié la commande pour afficher dans une boite de dialogue le résultat de %u et cela semble correct :

Il faut chercher ailleurs...
La commande
Code BASH :
hubic backup create /home/$USER/......
elle fonctionne ?
Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :

La commande suivante fonctionne :
Code BASH :
hubic backup create /home/$USER/Test
Le dossier Test se sauvegarde bien chez hubic.
c'est quoi $USER? une variable qui renvoi le user ?
(Désolé pour mes questions de base, mais c'est mon premier script et service menu et j'y vais sans documentation...)
Sinon, y a t'il moyen d'executer en mode débogage ou pas à pas, pour voir les éventuels message d'erreurs ?
Merci d'avance.
@+

Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
$USER renvoie le nom de ton utilisateur en bash :
Code BASH :
1 [13:38:00] adriencl@superlinux: ~ $ echo $USER adriencl
Je ne sais pas si on peut lancer en mode "débogage". Peut être lancer dolphin dans une Konsole ?
Le dossier en question a-t-il des espaces ?
Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :
Pas d'espace dans le nom de dossier, c'etait Test comme dans mon post.
Comme tu le suggérais, j'ai démarré Dolphin via la console et je vois les messages d'erreurs.
Chose surpprenante, ce qui ne fonctionnait pas hier fonctionne aujourd'hui

Mon service menu fonctionne

Maintenant, il va falloir que j'améliore les choses.
Faire une service menu pour actualiser et essayer de trouver un moyen de récupérer les message d'erreur :
hubic non connecté, archive déjà créé...
Je ne sais pas s'il est possible de faire ça directement dans un service menu, ou s'il faut créer un script à part qui serait lancé par le service menu ?!
Qu'en penses-tu ?
@+

Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :

Citation :
s'il faut créer un script à part qui serait lancé par le service menu ?!
Je prendrais bien cette seconde option :-)
Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :
Je crois que ça va m'occuper un bout de temps

Le plus dur ça va être de trouver les syntaxes, récupérer les messages d'erreurs...
Je vais me mettre en quête d'un manuel de bash

Encore merci.
@+

Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)
OPS56 :
Mouai, c'est bien ce qu'il me semblait.
Je crois que ça va m'occuper un bout de temps
Le plus dur ça va être de trouver les syntaxes, récupérer les messages d'erreurs...
Je crois que ça va m'occuper un bout de temps

Le plus dur ça va être de trouver les syntaxes, récupérer les messages d'erreurs...
Quand tu y seras arrivé, tu pourras poster le script ici ?
Merci d'avance...
joel

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
Code BASH :
1 [18:22:58] adriencl@superlinux: ~ $ cd tmp 2 [18:23:01] adriencl@superlinux: ~/tmp $ echo $? 0 3 [18:23:05] adriencl@superlinux: ~/tmp $ cd jdfhku bash: cd: jdfhku: Aucun fichier ou dossier de ce type 4 [18:23:08] adriencl@superlinux: ~/tmp $ echo $? 1
0 = ça a fonctionné.
1 = erreur
.... a toi de jouer
Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :
joel :
Quand tu y seras arrivé, tu pourras poster le script ici ?
Quand tu y seras arrivé, tu pourras poster le script ici ?
C'était bien mon intention, mais j'ai dabords de la documentation à lire.
J'ai trouvé ça : http://abs.traduc.org/abs-fr/index.html
Ça m'a lair complet mais ardu.
Je pense que je passerai poser quelques questions de temps à autre.
@+

Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)

OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :
Et bien ça y est je me suis lancé

Je suis complétement novice en bash, donc ça n'est pas simple.
J'ai écris ça, mais ce n'est pas encore ce que je veux obtenir.
Code BASH :
#!/bin/bash # # Ce script sert à lancer les sauvegarde des doosiers vers hubic #OPS56 le 27/10/2014 #récupèration le chemin du dossier selectionné Dossier=$PWD # lancement de la creation de la sauvegarde sur hubic hubic backup create $Dossier # Stockage du code de retour RETOUR=$? # et on l'affiche echo $RETOUR # Si le code retour =2 c'est que ça c'est mal passé # Donc, il y a des chance que le dossier existe déjà # On tente alors un update if [ $RETOUR == 2 ] # si code erreur =2 alors then echo 'Le dossier existe déjà, je tente un update' hubic backup update $Dossier # test d'update du dossier RETOUR=$? # Stockage du code de retour # et on l'affiche echo $RETOUR fi if [ $RETOUR == 0 ] # si code erreur =0 alors then echo $RETOUR kdialog --msgbox 'Success !' else echo $RETOUR kdialog --msgbox 'Pas fonctionné !' fi
Le script tente de sauvegarder le dossier courant sur hubic et si j'ai un retour =2, c'est que le dossier existe déjà, donc je lance un update.
Mes soucis:
1- Le script lance la sauvegarde du dossier dans lequel je me trouve ; comment faire pour récupérer le chemin du dossier selectionné dans Dolphin ? Je n'ai pas réussi à utiliser le %U comme dans le service menu !
2- Y a t'il un moyen d'afficher dans la msgbox, le message d'erreur qu'on peut lire dans la konsole lorsque ça se passe mal ?
3- Dans les messages que j'envoi, les lettres accentuées n'apparaissent pas et sont remplacées par des "?" sur fond noir.
Je suppose qu'il y a une commande pour passer en UTF-8 ?
Merci d'avance.


Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)

Adrien.D Membre non connecté
-
- Voir le profil du membre Adrien.D
- Inscrit le : 30/05/2011
- Site internet
- Groupes :
Citation :
Le script lance la sauvegarde du dossier dans lequel je me trouve ; comment faire pour récupérer le chemin du dossier selectionné dans Dolphin ? Je n'ai pas réussi à utiliser le %U comme dans le service menu !
Il faut passer une variable au script (le fameux %u)
Exemple :
Code BASH :
#! /bin/bash arg=$1 echo $arg
Et quand je lance avec quelque chose derrière le script :
Code BASH :
sh scrit-recup-variable.sh 55 55
Tu peux aussi te permettre de vérifier la présence du dossier avec
Code BASH :
if [ -d /chemin/du/dossier ] then echo dossier existe fi
Donc dans le serviceMenu, tu lances ton script comme ça :
Code BASH :
Exec=monsuperscript.sh %u
Et dans le début du script tu récupères le %u ainci :
Code BASH :
#!/bin/bash # # Ce script sert à lancer les sauvegarde des doosiers vers hubic #OPS56 le 27/10/2014 #récupèration le chemin du dossier selectionné Dossier=$1 f [ -d $Dossier ] then # lancement de la creation de la sauvegarde sur hubic hubic backup create $Dossier else echo "Le dossier n'existe pas" fi # Stockage du code de retour ...
Config : PC Fixe : X470 GAMING PRO- AMD Ryzen 5 2600X - 16Go RAM - Radeon RX 560 (Pilote libre) - Gentoo Linux - GNOME Desktop - Kernel 5.10 LTS
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !
Ancien Webmaster de MageiaLinuxOnline. Les remplaçants assurent !


OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :

Ça fonctionne pour le passage de variable

Le dossier se sauvegarde bien sur hubic, via le service menu.
J'ai résolu aussi mon problème d'accent, il fallait enregistrer le ficier du script au format UTF-8.
Il ne me reste plus qu'à essayer de récupérer le message d'erreur pour l'afficher.
@+

Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)

OPS56 Membre non connecté
-
- Voir le profil du membre OPS56
- Inscrit le : 18/11/2008
- Groupes :
Le service menu (limité au dossiers, car la sauvegarde hubiC ne fonctionne que sur les dossiers)
Le service menu est à enregistré ici :/home/afo/.kde4/share/kde4/services/ServiceMenus/Sauvegarder sous hubiC.desktop
Code BASH :
[Desktop Entry] Encoding=UTF-8 Type=Service ServiceTypes=KonqPopupMenu/Plugin,inode/directory Actions=Savetohubic [Desktop Action Savetohubic] Name=Save to hubiC Name[fr]=Sauvegarder sous hubiC Icon=hubic Exec=/home/$USER/hubic_script %u
Le script
il est à enregistrer directement sous le dossier home de l'utilisateur:
Code BASH :
#!/bin/bash # # Ce script sert à lancer les sauvegardes des dossiers vers hubic #OPS56 le 27/10/2014 #récupèration du chemin du dossier selectionné à partir du service menu Dossier=$1 clear echo 'Début Traitement' # lancement de la creation de la sauvegarde sur hubic hubic backup create $Dossier # Stockage du code de retour RETOUR=$? echo 'Code retour Creation Backup 0=Ok, 2=KO :' echo $RETOUR # Si le code retour =2 c'est que ça c'est mal passé # Donc, il y a des chance que le dossier existe déjà # On tente alors un update if [ $RETOUR == 2 ] # si code erreur =2 alors then echo 'Le dossier existe déjà, je tente un update' hubic backup update $Dossier # test d'update du dossier RETOUR=$? # Stockage du code de retour # et on l'affiche echo 'Code retour Update Backup 0=Ok, 2=KO :' echo $RETOUR fi if [ $RETOUR == 0 ] # si code erreur =0 alors c'est OK then kdialog --title "Sauvegarde vers hubiC" --msgbox 'Bravo ! nSauvegarde réalisé avec succés !' else #Sinon, c'est KO kdialog --title "Sauvegarde vers hubiC" --error "Ça n'a pas fonctionné !nRecommencer l'opération avec Dolphin lancé à a partir nd'une console, pour voir le message d'erreur." fi echo 'Fin Traitement'
Je n'ai pas trouvé comment faire pour récupérer le texte des messages d'erreur

Ça fonctionne, mais c'est certainement perfectible, je suis ouvert à toute suggestion.
Encore merci à Adrien pour son aide.

@+

Dell G3-15 Intel Corei7 - 16Go Ram - Nvidia GTX1660 Ti (Tri boot Mageia 9- 64 bits / Linux Mint 20 Cinamon/ Windows 10)
Core i5 760 - 8Go Ram - Nvidia Gforce 450 - (Triple boot Mageia 9-64 bits - Plasma 5 / Mint 20 Cinamon / Open Suse Tumbleweed - Plasma 5)
OPS56 :
hubiC vient de mettre en place une nouvelle commande dans son application, la sauvegarde de dossier ou fichier.
hubiC vient de mettre en place une nouvelle commande dans son application, la sauvegarde de dossier ou fichier.
Bonjour OPS56,
Comment as-tu installé hubiC ?
Parce que je viens de m'apercevoir que mon hubic a disparu...
Je l'avais installé dans /usr/local/bin/hubic, mais il n'existe plus, et mon dossier /home/joel/hubiC/ est maintenant vide.
Néanmoins les dossiers que j'avais sauvegardés existent toujours chez https://hubic.com/home/browser/#default
J'ai donc voulu le réinstaller : j'ai téléchargé et décompressé la dernière version, mais :
1 [31-10-2014 04:21] root@localhost: ~ # make install
make: *** No rule to make target 'install'. Arrêt.
make: *** No rule to make target 'install'. Arrêt.
C'est pourquoi je te demande comment tu l'as installé ?
joel
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie