OVH Cloud OVH Cloud

lancer un Service depuis le Finder

25 réponses
Avatar
unbewusst.sein
je me suis créé un service qui lance un script, son entrée est la
sélection de fichiers/dossiers du Finder.

il convertit la sélection en URL et l'ouvre dans le browser par défaut.

j'ai configuré une combinaison de touches claviers, ça marche comme je
veux.

MAIS je souhaiterais que ce service apparaisse aussi dans le menu
contextuel "Services" du Finder, comment faire ?

--
« Les femmes ont raison de se rebeller contre les lois parce que
nous les avons faites sans elles. »
(Michel de Montaigne)

10 réponses

1 2 3
Avatar
unbewusst.sein
JiPaul wrote:

> reste à trouver comment j'installe "Open Terminal Here" qui est le n°
> 94...

Ne sais pas. Pas pu finir la mise à jour, car je laisse TM finir son
travail avant de redémarrer.



bon, j'ai trouvé un nouvel "Open Terminal Here" by Marc Liyanage :
<http://www.entropy.ch/software/applescript/> lequel renvoit à :
<http://forums.macosxhints.com/showthread.php?pB6240#post426240> et
<http://jo.irisson.free.fr/?pY> et
<http://henrik.nyh.se/2007/10/open-terminal-here-and-glob-select-in-leop
ard-finder>
--
« Les femmes ont raison de se rebeller contre les lois parce que
nous les avons faites sans elles. »
(Michel de Montaigne)
Avatar
Patrick Stadelmann
In article <1ji4quu.310p50drht0cN%,
(Une Bévue) wrote:

dans Automator; c'est "tout bête" :

http://cjoint.com/data/fhqTHkM01A.htm

je ne pige pas .



Je pense que ça vient du "aucune entrée".

Patrick
--
Patrick Stadelmann
Avatar
unbewusst.sein
Patrick Stadelmann wrote:

Je pense que ça vient du "aucune entrée".



si aucune entrée alors aucune app n'est sollicitée, c'est ça ?

en fait le script lit la sélection du finder...
l'entrée est donc implicite, mais bon, j'essaierai en ajoutant n'importe
quelle entrée, comme je ne m'en serts pas...
--
« Le mariage est la principale cause de divorce. »
(Oscar Wilde)
Avatar
unbewusst.sein
Une Bévue wrote:

j'essaierai en ajoutant n'importe
quelle entrée



j'ai mis entrée texte, ça ne change rien...
--
« Le mariage est la principale cause de divorce. »
(Oscar Wilde)
Avatar
Patrick Stadelmann
In article <1ji6owk.146g2xkk9guo4N%,
(Une Bévue) wrote:

Une Bévue wrote:

> j'essaierai en ajoutant n'importe
> quelle entrée

j'ai mis entrée texte, ça ne change rien...



Normal, ça doit correspondre à la sélection dans le Finder, donc un des
choix dans la section "fichiers et dossiers".

Patrick
--
Patrick Stadelmann
Avatar
unbewusst.sein
Patrick Stadelmann wrote:

Normal, ça doit correspondre à la sélection dans le Finder, donc un des
choix dans la section "fichiers et dossiers".



Wwwwwwoooouuuaaaiiisss !
Merci pour ta patience, m'n fait ce que je choisis, là, dans Automator,
c'est "dummy", amha, because mon script de qq lignes fait ça :
------------------------------------------------------------------------
#! /opt/local/bin/ruby1.9
# encoding: utf-8

require 'rubygems'
require 'appscript'
include Appscript

MY_IP = `curl -s http://whatismyip.org`
SITES = "#{ENV['HOME']}/Sites"
SITES_URL = "file://localhost#{SITES}"
files = []
selected = app('Finder').selection.get
selected.each {|s| files << s.URL.get}

files.each do |file|
file = file.gsub(/^#{SITES_URL}(.*)/, "http://#{MY_IP}" + '1') if
file =~ /^#{SITES_URL}.*/
`open "#{file}"`
end
------------------------------------------------------------------------
donc, par la ligne "selected = app('Finder').selection.get", il prend
de lui-même les fichiers/dossiers sélectionnés par le Finder, seulement
pour que ça marche dans le menu contectuel Services il faut que l'aplli
était été chosies avec le bon mode :
http://cjoint.com/data/fjs0qkvfty.htm

sinon, les liens ne sont pas fait, au niveau des services, et de ce
script, d'avec le Finder, enfin, c'est ce que j'intuite...
--
« La gloire n'est pas de ne jamais tomber,
mais de se relever chaque fois que l'on tombe. »
(Proverbe chinois)
Avatar
Patrick Stadelmann
In article <1ji8mrb.gkuivhafmqsyN%,
(Une Bévue) wrote:

donc, par la ligne "selected = app('Finder').selection.get", il prend
de lui-même les fichiers/dossiers sélectionnés par le Finder, seulement
pour que ça marche dans le menu contectuel Services il faut que l'aplli
était été chosies avec le bon mode :
http://cjoint.com/data/fjs0qkvfty.htm

sinon, les liens ne sont pas fait, au niveau des services, et de ce
script, d'avec le Finder, enfin, c'est ce que j'intuite...



Oui, et c'est tout à fait logique comme comportement. Normalement, tu
devrais utiliser la liste de fichier que le Finder envoie, et non pas
redemander la sélection qui risque d'être incorrect si l'utilisateur est
rapide !

Patrick
--
Patrick Stadelmann
Avatar
unbewusst.sein
Patrick Stadelmann wrote:

Oui, et c'est tout à fait logique comme comportement. Normalement, tu
devrais utiliser la liste de fichier que le Finder envoie, et non pas
redemander la sélection qui risque d'être incorrect si l'utilisateur est
rapide !



oui, c'est vrai mais je ne vois pas comment récupérer les arguments...

je m'explique pour ça mon service se compose de deux trucs "Automator" :
- le premier c'est "Obtenir les éléments sélectionnés du Finder"
- le second "Exécuter un script Shell"

mais mon script ne reçoit rien en argument...

pourtant quand je fais excécuter dans automator, ça me montre bien les
deux dossiers sélectionnés dans une fenêtre du Finder.

pour tester, mon script ne fait qu'un écho de la classe des arguments
passés dans un term :

script ruby :
s = "La classe des arguments : #{ARGV.first.class}, leur nombre :
#{ARGV.size}"
term_command("echo '#{s}'")

je fais ça (print de la classe et du nb) par ce que je ne vois rien
passer comme argument, au term ça me donne :

zsh-% echo 'La classe des arguments : NilClass, leur nombre : 0'
La classe des arguments : NilClass, leur nombre : 0
zsh-%

http://cjoint.com/data/fjuUqnYU2f.htm

alors peut-être que le blème là, c'est que le système ne serait pas
prévu pour filer des arguments type alias :

http://cjoint.com/data/fju0qcYhz7.htm

à un script Shell, il faudrait donc interposer un Applescript pour
convertir les args en path (text) du type "Exécuter un script
AppleScript"...

mais bon là mon script n'aurait plus d'intérêt, il vaudrait mieux tout
passer en AS...

à voir demain, je vais béqueter, bonne soirée !

finalement j'ai essayé avant de manger :

http://cjoint.com/data/fjvjHD5n8I.htm

le script AS reçoit bien l'argument (path du dossier sélectionné) mais
ne le transmet pas au script ruby qui suit dans la chaine.

bon une solution serait donc de tout passer en AS, mais c'est nettement
plus lent à l'exécution que ruby + AppScript...
--
« La gloire n'est pas de ne jamais tomber,
mais de se relever chaque fois que l'on tombe. »
(Proverbe chinois)
Avatar
Patrick Stadelmann
In article <1ji8r1r.q918fx12x2yioN%,
(Une Bévue) wrote:

Patrick Stadelmann wrote:

> Oui, et c'est tout à fait logique comme comportement. Normalement, tu
> devrais utiliser la liste de fichier que le Finder envoie, et non pas
> redemander la sélection qui risque d'être incorrect si l'utilisateur est
> rapide !

oui, c'est vrai mais je ne vois pas comment récupérer les arguments...

je m'explique pour ça mon service se compose de deux trucs "Automator" :
- le premier c'est "Obtenir les éléments sélectionnés du Finder"
- le second "Exécuter un script Shell"

mais mon script ne reçoit rien en argument...



Normalement, il devrait, il n'y a rien à faire de spécial sauf choisir
entre les recevoir via stdin ou comme argument. Selon le choix, il y a
un script par défaut qui affiche le contenu des arguments. Les fichiers
sont passé sous forme de chemin POSIX.

Patrick
--
Patrick Stadelmann
Avatar
unbewusst.sein
Patrick Stadelmann wrote:

Normalement, il devrait, il n'y a rien à faire de spécial sauf choisir
entre les recevoir via stdin ou comme argument. Selon le choix, il y a
un script par défaut qui affiche le contenu des arguments. Les fichiers
sont passé sous forme de chemin POSIX.



donc là, pas besoin d'AS qui ne fait que convertir en POSIX...
--
« La gloire n'est pas de ne jamais tomber,
mais de se relever chaque fois que l'on tombe. »
(Proverbe chinois)
1 2 3