depuis un script shell j'aimerais lancer un osascript, j'y parviens,
avec le bon résultat pour ce test simple, mais une floppée d'injures...
le script (ruby) :
#! /opt/local/bin/ruby1.9
# encoding: utf-8
r = `/usr/bin/osascript <<END
on get_alias_original(a)
tell application "Finder"
set oa to (original item of alias a) as alias
set o to POSIX path of oa
return o
end tell
end get_alias_original
set o to get_alias_original("HD:Users:yt:Menu:Desk:Calculette")
o
END`
puts "r = #{r}"
le résultat les injures prévues :
2010-05-14 16:06:42.432 osascript[19364:903] Error loading
/Users/yt/Library/ScriptingAdditions/Default Folder X
Addition.osax/Contents/MacOS/Default Folder X Addition:
dlopen(/Users/yt/Library/ScriptingAdditions/Default Folder X
Addition.osax/Contents/MacOS/Default Folder X Addition, 262): no
suitable image found. Did find:
/Users/yt/Library/ScriptingAdditions/Default Folder X
Addition.osax/Contents/MacOS/Default Folder X Addition: no matching
architecture in universal wrapper osascript: OpenScripting.framework -
scripting addition "/Users/yt/Library/ScriptingAdditions/Default Folder
X Addition.osax" declares no loadable handlers.
à peu près la même chose pour "ScriptingAdditions/List & Record
Tools.osax" et "ScriptingAdditions/Property List Tools.osax"
mais, tout de même j'obtiens le *bon* résultat :
r = /Applications/Calculator.app/
peut on éviter les injures si oui comment ?
but, inavoué de la manip : lancer un script shell par osascript do shell
script lequel script shell une authentification, j'ai vérifié que :
set r to do shell script "mon script.zsh|rb" with administrator
privileges
r
ouvre une fenêtre d'authentification ce qui évite de mettre un password
"en dur"... et puis alerte l'utilisateur.
--
« Quand tu lances la flèche de la vérité,
trempe la pointe dans du miel. »
(Proverbe arabe)
cmd = "/usr/bin/osascript <<END do shell script "echo toto " END"
je me retrouve bien aussi avec :
stdout : toto
par contre, avec cette commande :
cmd = "/usr/bin/osascript <<END on get_alias_original(a) tell application 'Finder' set oa to (original item of alias a) as alias set o to POSIX path of oa return o end tell end get_alias_original set o to get_alias_original('HD:Users:yt:Menu:Desk:Calculette') do shell script "echo " & o END"
j'ai l'erreur sur stderr mais que dalle sur stdout pourquoi ?
remarque qu'avec :
cmd = "/usr/bin/osascript <<END set o to "toto" do shell script "echo " & o END"
j'ai bien :
stdout : toto
une question de timing peut-être ?
Tu peux aussi essayer de désactiver ces OSAX, sans les virer, au cas où tu aurais encore des applications qui les utilisent.
oui, c'est bien ça, j'ai testé en en enlevant qq'uns, donc ça signifie qu'ils ne marchent pas ces "ScriptingAdditions"... -- « Quand tu lances la flèche de la vérité, trempe la pointe dans du miel. » (Proverbe arabe)
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
Ces OSAX ne contiennent pas de code pour ton architecture. Comme
osascript est bien écrit, ça sort sur stderr qu'il suffit de rediriger.
ça roule super quand je fais :
zsh-% ./osascript_test.rb 2> /dev/null
r = /Applications/Calculator.app/
ce qui nécessite d'avoir un second script pour lancer celui-ci avec la
redirection donc, j'ai essayé plutôt POpen4 :
status = POpen4::popen4(cmd) do |stdout, stderr|
puts "stdout : #{ stdout.read.strip }"
puts "stderr : #{ stderr.read.strip }"
end
cmd = "/usr/bin/osascript <<END
do shell script "echo toto "
END"
je me retrouve bien aussi avec :
stdout : toto
par contre, avec cette commande :
cmd = "/usr/bin/osascript <<END
on get_alias_original(a)
tell application 'Finder'
set oa to (original item of alias a) as alias
set o to POSIX path of oa
return o
end tell
end get_alias_original
set o to get_alias_original('HD:Users:yt:Menu:Desk:Calculette')
do shell script "echo " & o
END"
j'ai l'erreur sur stderr mais que dalle sur stdout pourquoi ?
remarque qu'avec :
cmd = "/usr/bin/osascript <<END
set o to "toto"
do shell script "echo " & o
END"
j'ai bien :
stdout : toto
une question de timing peut-être ?
Tu peux aussi essayer de désactiver ces OSAX, sans les virer, au cas où
tu aurais encore des applications qui les utilisent.
oui, c'est bien ça, j'ai testé en en enlevant qq'uns, donc ça signifie
qu'ils ne marchent pas ces "ScriptingAdditions"...
--
« Quand tu lances la flèche de la vérité,
trempe la pointe dans du miel. »
(Proverbe arabe)
cmd = "/usr/bin/osascript <<END do shell script "echo toto " END"
je me retrouve bien aussi avec :
stdout : toto
par contre, avec cette commande :
cmd = "/usr/bin/osascript <<END on get_alias_original(a) tell application 'Finder' set oa to (original item of alias a) as alias set o to POSIX path of oa return o end tell end get_alias_original set o to get_alias_original('HD:Users:yt:Menu:Desk:Calculette') do shell script "echo " & o END"
j'ai l'erreur sur stderr mais que dalle sur stdout pourquoi ?
remarque qu'avec :
cmd = "/usr/bin/osascript <<END set o to "toto" do shell script "echo " & o END"
j'ai bien :
stdout : toto
une question de timing peut-être ?
Tu peux aussi essayer de désactiver ces OSAX, sans les virer, au cas où tu aurais encore des applications qui les utilisent.
oui, c'est bien ça, j'ai testé en en enlevant qq'uns, donc ça signifie qu'ils ne marchent pas ces "ScriptingAdditions"... -- « Quand tu lances la flèche de la vérité, trempe la pointe dans du miel. » (Proverbe arabe)
unbewusst.sein
Une Bévue wrote:
tell application 'Finder'
il faut mettre des "" :
tell application "Finder"
-- « Quand tu lances la flèche de la vérité, trempe la pointe dans du miel. » (Proverbe arabe)
Une Bévue <unbewusst.sein@google.com.invalid> wrote:
tell application 'Finder'
il faut mettre des "" :
tell application "Finder"
--
« Quand tu lances la flèche de la vérité,
trempe la pointe dans du miel. »
(Proverbe arabe)
-- « Quand tu lances la flèche de la vérité, trempe la pointe dans du miel. » (Proverbe arabe)
Patrick Stadelmann
In article <1jihuqg.z0kr1ys7sttyN%, (Une Bévue) wrote:
par contre, avec cette commande :
cmd = "/usr/bin/osascript <<END on get_alias_original(a) tell application 'Finder' set oa to (original item of alias a) as alias set o to POSIX path of oa return o end tell end get_alias_original set o to get_alias_original('HD:Users:yt:Menu:Desk:Calculette') do shell script "echo " & o END"
j'ai l'erreur sur stderr mais que dalle sur stdout pourquoi ?
Redirige plutôt stderr dans un fichier pour voir s'il n'y a pas d'autres erreurs. Par exemple, l'emploi de ' simple pour les chaînes ne fonctionne pas chez moi.
une question de timing peut-être ?
?
oui, c'est bien ça, j'ai testé en en enlevant qq'uns, donc ça signifie qu'ils ne marchent pas ces "ScriptingAdditions"...
Ca dépend. S'ils sont en 32-bit par exemple, ils peuvent être utilisés par des applications 32-bit ou lancée en 32-bit.
Patrick -- Patrick Stadelmann
In article <1jihuqg.z0kr1ys7sttyN%unbewusst.sein@google.com.invalid>,
unbewusst.sein@google.com.invalid (Une Bévue) wrote:
par contre, avec cette commande :
cmd = "/usr/bin/osascript <<END
on get_alias_original(a)
tell application 'Finder'
set oa to (original item of alias a) as alias
set o to POSIX path of oa
return o
end tell
end get_alias_original
set o to get_alias_original('HD:Users:yt:Menu:Desk:Calculette')
do shell script "echo " & o
END"
j'ai l'erreur sur stderr mais que dalle sur stdout pourquoi ?
Redirige plutôt stderr dans un fichier pour voir s'il n'y a pas d'autres
erreurs. Par exemple, l'emploi de ' simple pour les chaînes ne
fonctionne pas chez moi.
une question de timing peut-être ?
?
oui, c'est bien ça, j'ai testé en en enlevant qq'uns, donc ça signifie
qu'ils ne marchent pas ces "ScriptingAdditions"...
Ca dépend. S'ils sont en 32-bit par exemple, ils peuvent être utilisés
par des applications 32-bit ou lancée en 32-bit.
Patrick
--
Patrick Stadelmann <Patrick.Stadelmann@unine.ch>
In article <1jihuqg.z0kr1ys7sttyN%, (Une Bévue) wrote:
par contre, avec cette commande :
cmd = "/usr/bin/osascript <<END on get_alias_original(a) tell application 'Finder' set oa to (original item of alias a) as alias set o to POSIX path of oa return o end tell end get_alias_original set o to get_alias_original('HD:Users:yt:Menu:Desk:Calculette') do shell script "echo " & o END"
j'ai l'erreur sur stderr mais que dalle sur stdout pourquoi ?
Redirige plutôt stderr dans un fichier pour voir s'il n'y a pas d'autres erreurs. Par exemple, l'emploi de ' simple pour les chaînes ne fonctionne pas chez moi.
une question de timing peut-être ?
?
oui, c'est bien ça, j'ai testé en en enlevant qq'uns, donc ça signifie qu'ils ne marchent pas ces "ScriptingAdditions"...
Ca dépend. S'ils sont en 32-bit par exemple, ils peuvent être utilisés par des applications 32-bit ou lancée en 32-bit.
Patrick -- Patrick Stadelmann
unbewusst.sein
Patrick Stadelmann wrote:
Redirige plutôt stderr dans un fichier pour voir s'il n'y a pas d'autres erreurs. Par exemple, l'emploi de ' simple pour les chaînes ne fonctionne pas chez moi.
oui, c'était ça, damned !
je l'ai bu en virant les trucs de ScriptingAdditions, ça me cacher une autre erreur... -- « Quand tu lances la flèche de la vérité, trempe la pointe dans du miel. » (Proverbe arabe)
Patrick Stadelmann <Patrick.Stadelmann@unine.ch> wrote:
Redirige plutôt stderr dans un fichier pour voir s'il n'y a pas d'autres
erreurs. Par exemple, l'emploi de ' simple pour les chaînes ne
fonctionne pas chez moi.
oui, c'était ça, damned !
je l'ai bu en virant les trucs de ScriptingAdditions, ça me cacher une
autre erreur...
--
« Quand tu lances la flèche de la vérité,
trempe la pointe dans du miel. »
(Proverbe arabe)
Redirige plutôt stderr dans un fichier pour voir s'il n'y a pas d'autres erreurs. Par exemple, l'emploi de ' simple pour les chaînes ne fonctionne pas chez moi.
oui, c'était ça, damned !
je l'ai bu en virant les trucs de ScriptingAdditions, ça me cacher une autre erreur... -- « Quand tu lances la flèche de la vérité, trempe la pointe dans du miel. » (Proverbe arabe)