Registra um arquivo especificado por open

1

Então eu tenho este pequeno pacote com o applescript feito, e parece funcionar como deveria. No entanto, ele aparentemente não abre meus arquivos quando é solicitado por meio do utilitário open . Ele funciona quando eu uso o localizador. Alguém pode me ajudar? Meu código é este:

on open theFile
    set runner to ((path to me)'s POSIX path) & "Contents/MacOS/desk_parse"
    -- We need to escape some stuff here.
    -- Expected output: '/path/to/bundle.app//Contents/MacOS/dsk_parse' '/path/to/app.desk'
    do shell script "'" & runner & "' '" & (POSIX path of theFile) & "' &"
    --display dialog runner
end open

Mais uma vez, funciona a partir do buscador, mas não da linha de comando, como:

open "theFile.ext"

Meu Info.plist rads e também aceita a extensão que eu salvei nele. Então essa associação realmente funciona.

    
por Ingwie Phoenix 25.09.2013 / 23:18

1 resposta

0

Esse é o comportamento normal: o manipulador open se aplica a:

  • Arquivos soltos no aplicativo do Finder
  • Arquivos abertos com por exemplo tell app "Finder" open ... using path to "Your Application"

Mas não para:

  • Arquivos passados como argumentos para open -a
  • Arquivos abertos no aplicativo se o aplicativo for o aplicativo padrão para um tipo de arquivo

Você pode criar o aplicativo com o Automator ou Platypus .

Com o Automator, use uma ação Executar AppleScript assim:

on run {input, parameters}
    say (POSIX path of item 1 of input)
end run

Com o Platypus, marque "Aceitar itens ignorados" e use um manipulador de execução normal:

#!/usr/bin/osascript

on run argv
    say item 1 of argv
end
    
por 26.09.2013 / 11:09