Como é tão trivial abrir uma nova guia, sugiro tornar a execução de seus comandos o mais trivial possível e fazer isso da maneira antiga.
Você chamou duas ações específicas, então vamos trabalhar com elas. Note que vou fazer muitas suposições com base no que sei do Rails, mas não necessariamente específico para o seu projeto.
Para encurtar a história, alias um comando para fazer o que você também deseja, ou crie um shell script trivial para fazer o que você deseja.
Crie um script de shell chamado myapp.start
, com o conteúdo:
#!/bin/bash
cd Development/rails/myapp
# Do any common environment initializations here, such as RAILS_ENV=development
script/server
Você provavelmente também precisará criar um arquivo chamado .bash_profile em seu diretório pessoal ou modificar um já existente e adicionar uma linha como;
export PATH="$HOME/bin:${PATH}"
Em seguida, crie um diretório bin na sua pasta pessoal e mova o script myapp.start para ele. Verifique também se o proprietário executa o bit no mínimo ( chmod 700 myapp.start
).
Em seguida, abra o Terminal.app, digite myapp.start
e você tem os trilhos em execução. Como alternativa, digite myae pressione Tabe deixe o preenchimento automático preencher o restante, pressione return. Boom, servidor em execução.
Por extensão, você já deve entender como fazer uma cauda de arquivo de log, mas continuarei assim mesmo. Crie outro arquivo em ~ / bin chamado myapp.taillog, com o conteúdo:
#!/bin/bash
tail -F ~/Development/rails/myapp/logs/development.log
Novamente, coloque-o na pasta bin e chmod 700 ~/bin/myapp.taillog
, depois de iniciar, em seguida, rails server, pressione rapidamente ⌘t, digite myapp.taillog
e você terá um arquivo de log sendo impresso.
Dois comandos, duas chaves adicionais (abrir as guias), talvez isso seja suficiente?
Existem duas melhorias muito óbvias aqui. Uma é escrever uma função de shell capaz de "descobrir" os nomes dos aplicativos rails, para que você não precise escrever um script de shell para cada um, escrever um subcomando projetado para iniciar o webbrick / seu servidor de rails preferido e comandos para cauda -F'ing alguns arquivos de log chave rotineiramente.
A segunda melhoria é que é provável que você possa escrever um AppleScript que faça a interação necessária com o terminal e a execução apropriada de comandos dentro de cada um. Mas, francamente, eu sou péssima em AppleScript e trabalho com código bash e código perl o dia todo, por isso estou oferecendo conselhos relevantes ao meu conjunto de habilidades :)