Dividir a janela programaticamente com o iTerm?

6

na minha estação de trabalho de desenvolvimento, muitas vezes tenho que iniciar os mesmos comandos todas as manhãs.

zeus start , zeus server (trilhos de inicialização via zeus), redis-server e como outros 3.

Eu sei que muitas pessoas diriam tê-las rodando o tempo todo, mas eu faço muito trabalho com minhas próprias coisas e isso me deixa perplexo tendo todas aquelas rodando enquanto estou trabalhando em projetos de trilhos separados.

Existe algum tipo de alias avançado que eu posso fazer, que inicia todos eles a partir de um comando, idealmente dividindo a janela programaticamente (como ⌘-D ).

Estou usando o iTerm2 com oh-my-zsh.

Eu não me importaria se eles estivessem todos na mesma janela que eu suponho (de alguma forma rodando como processos em segundo plano), mas eu preciso às vezes olhar a saída e trabalhar com a saída de cada comando, então não sei como isso funcionaria.

Obrigado!

    
por Tallboy 19.09.2013 / 19:55

2 respostas

5

Você pode chamar isso facilmente do iTerm2 diretamente para simular pressionando D :

osascript -e 'tell application "System Events" to key code 2 using command down'

Para que isso funcione, você deseja iniciar os programas em segundo plano, caso contrário, você não poderá executar osascript :

some-command &
osascript -e '…'

A partir daí você acessará uma nova janela iTerm2, então você precisa usar a opção write text no AppleScript para executar outros comandos do shell. Veja aqui para mais: Como configuro um AppleScript para abrir uma nova guia iTerm2 e alterar o diretório?

    
por 19.09.2013 / 20:35
0

a resposta aqui está um pouco desatualizada .. aqui está um script de exemplo que faz algo semelhante:

tell application "iTerm"
    tell current window
        -- create a tab for background db stuff
        create tab with default profile
        tell current session
            write text "mongod &"
            write text "redis-server &"
        end tell
        close current tab

        -- create tab to run aioc server
        create tab with default profile
        tell current session
            write text "title server"
            write text "aactivate"
            write text "arunserver"
            -- split tab vertically to run scheduler
            split vertically with default profile
        end tell

        -- run scheduler
        tell last session of last tab
            write text "title scheduler"
            write text "aactivate"
            write text "ascheduler"
            -- split tab vertically to run main controller
            split vertically with default profile
        end tell

        -- run main_controller
        tell last session of last tab
            write text "title main_controller"
            write text "aactivate"
            write text "amain_controller"
            -- split tab vertically to run aggregator
            split vertically with default profile
        end tell

        tell last session of last tab
            write text "title aggregator"
            write text "aactivate"
            write text "aggregator"
        end tell




    end tell
end tell
    
por 11.08.2017 / 15:51