Limpar maneira de automatizar os comandos do terminal em várias janelas e retornar para o prompt em cada um deles?

2

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.

    
por CodeMoose 19.08.2015 / 00:57

0 respostas

Tags