OSX 'abrir com' script bash

7

Eu tenho um script bash, potencialmente muitos deles, de fato, que eu gostaria de poder abrir arquivos no finder do OSX.

É um conceito realmente muito simples, mas por algum motivo os scripts bash são exibidos em cinza na caixa de diálogo 'abrir com'.

Eu entendo que existem várias maneiras de usar o applescript ou o empacotamento como um aplicativo ... mas eu não consegui descobrir nada disso e eu realmente não quero ter que pegar outro idioma apenas para essa tarefa trivial - alguém poderia me alimentar como fazer isso?

Obrigado!

    
por rich 29.01.2011 / 11:31

3 respostas

11

Não é possível. O Launch Services funciona com identificadores de aplicativos e os scripts bash não os possuem.

Você precisa criar um aplicativo wrapper usando o Automator.

  1. Iniciar o Automator
  2. Selecione Aplicativo
  3. Procure a ação Executar script de shell e adicione-a à direita.
  4. Transmitir entrada como argumentos
  5. Coloque seu script lá
  6. Salvar em algum lugar

Esta é a minha versão, usando o utilitário de linha de comando Growl :

Resultado:

Você pode ver o efeito dessa alteração em ~/Library/Preferences/com.apple.LaunchServices.plist quando Alterar tudo :

("Teste" é o nome que dei ao meu aplicativo Automator)

    
por 29.01.2011 / 11:45
1

Eu segui as instruções de Daniel Beck com algumas modificações e consegui que isso funcionasse para arquivos de URL que eu queria abrir no Chrome (o Firefox também funcionaria) em um Mac.

O script que usei é:

sed 's/^URL=/URL=/' "$1" | grep -m 1 '^URL=' | sed 's/^URL=//' | tr -d '\r' | xargs open -a "Google Chrome"

Isso analisa a URL = linha de um arquivo de URL típico que se parece com:

[InternetShortcut]
URL=http://www.docircuits.com/pricing
IDList=
HotKey=0
IconFile=O:\Apps\Firefox\Data\profile\shortcutCachet0JW4mY1qRPhiYz1fY3dw==.ico
IconIndex=0

Salve o script do Automator em algum lugar, como o diretório ~ / Library. Eu chamei o meu OpenUrl.app.

Agora vá para um arquivo url em algum lugar e abra o pop-up "Get Info". Altere o comando Abrir com para o seu script OpenUrl.app. Teste com apenas um ou clique no botão "Alterar tudo ..." A primeira vez que eu cliquei que deu um erro, mas parecia funcionar pela segunda vez.

Ao desenvolver isso, recebi os erros "Run Shell Script", mas isso ocorreu devido a erros reais no script. Acho que o principal problema com o script de Daniel é que ele não manipula espaços no nome do arquivo que você tenta abrir.

    
por 16.10.2014 / 05:37
-1

Use reattach-to-user-namespace , seja de o repo ou com brew install reattach-to-user-namespace . Isso funciona na Sierra, não tenho certeza sobre outros sistemas operacionais.

Uma vez instalado, use-o no script bash da seguinte forma:

reattach-to-user-namespace open a_cool_file.png

    
por 07.03.2017 / 17:31