heldercorreia.com

autodidata, programador e consultor

foreman start

Ao desenvolver em Django costumava ter uma tab com o runserver a correr. Como uso Compass, tinha outra tab com o watch atento a modificações aos meus ficheiros Sass. Com o postgres, gosto de correr em foreground para que quando termine de trabalhar no projeto em questão, a base de dados não continue a correr. É outra tab.

Já são 4 tabs abertas, contando com a que é preciso para ir executando comandos.

Quando comecei a usar o Heroku, através do uso do ficheiro Procfile descobri o Foreman.

Com o foreman, posso correr a base de dados, servidor web, compass/sass e mais qualquer outro comando em foreground. Tudo isso na mesma tab do terminal. Agora só uso duas.

Quando quiser terminar o trabalho, basta um Ctrl+C e todos esses serviços são encerrados.

Como funciona?

Simplesmente tenho um ficheiro Procfile na raiz do meu projeto (virtualenv), com o seguinte:

db: postgres -D /usr/local/var/postgres
web: python manage.py runserver 0.0.0.0:8000
sass: compass watch theme

As chaves podem ser o que quisermos. Com o mysql eu tenho:

db: mysqld
...

Para correr os comandos no Procfile (output agregado com cores diferentes), basta executar:

$ foreman start

O Foreman está em Ruby, portanto instala-se com rubygems (eu uso o Bundler):

$ gem install foreman

Também uso isto para iniciar variáveis de ambiente específicas ao projeto e usá-las nas configuração, mas é matéria para outro post.

Comentários