O que você pode tentar é ir para a pasta .app do aplicativo e renomear o binário, criando um arquivo de script (marcado como executável) nomeado como o executável usado para conter uma referência ao executável agora renomeado junto com o que você é scripting. por exemplo,
cd /Applications/Brackets.app/Contents/MacOS
mv Brackets BracketsReal
echo "tty.js" > Brackets
echo "BracketsReal &" >> Brackets
chmod +x Brackets
Isso deve criar um script de texto que lance seu script e o aplicativo posteriormente ...
editar
os scripts na pasta Appname.app/Contents/MacOS/
são suportados.
A primeira linha #!/bin/sh
(também conhecido como shebang
) é necessária
A técnica para mover o executável real e fazê-lo executar a partir de um script é chamada wrapping
e também é usada em aplicativos como Gimp ou XQuartz (Xorg / X11) no MacOS.
Se eu entendi corretamente o que o usuário estava tentando alcançar, execute o Bracket e abra automaticamente o arquivo tty.js
, além da falta do shebang
, preciso de alguma outra consideração.
Para colar corretamente o BracketsReal, os colchetes devem ser algo como:
#!/bin/sh
exec "$(dirname "$0")/BracketsReal"
Isso deve funcionar como se nunca tivéssemos movido os Suportes para os Suportes.
exec
é um comando interno do shell
$0
é um argumento especial passado do sistema para o shell script executado, quando executado com um click deve ser o caminho completo para o script:
/Applications/Brackets.app/Contents/MacOS/Brackets
dirname
é um comando shell para obter apenas a parte do diretório sem o nome do arquivo, $( )
é uma substituição de comando, uma vez executada, a linha se tornará:
exec /Applications/Brackets.app/Contents/MacOS/BracketsReal
Tanto é assim que podemos mover o aplicativo de /Applications
em outras pastas e ainda assim executá-lo.
Neste ponto, devemos verificar que BracketsReal
(provavelmente um script em si) aceita arquivos para abrir como argumentos na linha de comando (e eventualmente se precisar de alguma sintaxe especial) se aceitar argumentos, então a linha se tornaria algo como :
exec "$(dirname "$0")/BracketsReal" "/path/to/the/file/tty.js"
Última nota, para verificar se algo está errado com o script wrapper basta abrir um terminal e executar o wrapper, no prompt do terminal basta digitar / colar:
/Applications/Brackets.app/Contents/MacOS/Brackets
os privilégios ou erros de sintaxe são impressos na janela do terminal.