Então, como parte do meu fluxo de trabalho agora, sempre que eu puxo um projeto eu abro duas janelas de terminal ao lado dele - uma para manipular e monitorar git
e outra para manipular e monitorar gulp/grunt
. No momento, abro essas janelas manualmente, navego até as raízes apropriadas e executo os comandos iniciais - o processo está ficando muito tedioso e demorado.
Eu estive procurando uma maneira de automatizar esse processo e remover algumas das etapas manuais, e fiz alguns progressos. Escrevi um arquivo .command
que, quando clicado duas vezes, abre duas novas janelas de terminal e executa scripts que eu especifiquei.
cd "$(dirname "$0")/_launchscripts/"
open -a Terminal.app ./git.command
open -a Terminal.app ./grunt.command
Estrutura de arquivos para maior clareza:
_launch.command
_launchscripts/
git.command
grunt.command
Para contornar a janela do terminal saindo imediatamente após a conclusão, eu aprendi que você pode simplesmente abrir uma nova sessão de shell de login com bash -l
. Então, meu git.command
e grunt.command
são assim:
cd "$(dirname "$0")/../build/path/to/root"
[git or grunt status commands]
bash -l
O problema agora é que cada janela do terminal tem duas sessões bash abertas, uma aninhada na outra. Isso é um pouco chato, já que a janela do terminal agora pergunta "Tem certeza de que deseja fechar esta janela executando o bash (2)?" de perto, em vez de fechar imediatamente - mas, o mais importante, sinto que qualquer esforço adicional que eu faça para cavar mais fundo apenas tornará isso supercomplicado. Eu quero trazer isso de volta à simplicidade e elegância.
Tem que haver uma maneira mais fácil de fazer isso. É possível, ao clicar duas vezes, gerar mais de uma janela do shell, executar alguns comandos simples em cada um e retornar ao prompt original - ou pelo menos abrir um novo shell e matar o pai? Estou aberto a quaisquer alternativas inteligentes também, estou certo de que existem outras abordagens que não tenho conhecimento suficiente para considerar.