Posso usar um script bash como um Serviço no OS X sem ter que configurá-lo através do automator?

3

Como posso usar um script bash como um serviço no OS X sem ter que configurá-lo através do automator? Basicamente eu gostaria de escrever um script bash, salvá-lo em ~ / Library / Services e então apenas mostrá-lo no menu de serviços. Pensamentos?

    
por cwd 31.03.2011 / 19:22

3 respostas

4

ThisService é um pouco mais simples do que o Automator:

Omenudescriptsintegradotambémpodeserusadoparaexecutarscriptsdeshell:

Pode ser ativado em Utilitário AppleScript - Preferências - Exibir o menu Script na barra de menus . Inclui arquivos em ~ / Library / Scripts / e opcionalmente / Library / Scripts /. Você não pode atribuir atalhos - essa é a principal razão para usar o FastScripts .

Algumas aplicações para apenas atribuir atalhos: osx - Vincular uma chave a um comando de linha de comando no Mac OS X? - Superusuário .

    
por 31.03.2011 / 19:54
1

Você deve considerar tentar FastScripts . É como o menu de scripts do OS X feito corretamente, incluindo atalhos de teclado para fácil acesso.

    
por 31.03.2011 / 21:14
0

Eu não sei como fazer isso diretamente. Além do Automator, você também pode usar o XCode para criar um wrapper AppleScript para o seu script que funcionará como um Serviço.

Usar o script diretamente é mais problemático. Meu entendimento é que ele precisa ser um pacote de aplicativos e, em seguida, precisa de entradas específicas em seu Info.plist informando ao sistema qual serviço ele oferece. O primeiro pode ser feito com Ornitorrinco ; para este último, use o Property List Editor no XCode (ou plutil e um editor de XML se você se odeia como brincar diretamente com XML) para criar um NSServices key.

Isso deixa a grande questão de como invocá-lo; a mensagem Objective-C criada a partir de NSServices key NSMessage não será entendida diretamente por um shell, e parece que o Platypus também não tem como recebê-la. Eu suspeito que isso significa escrever um wrapper customizado em Objective-C.

    
por 31.03.2011 / 20:27