/herd

Herd a pack of Rails mongrels

MIT LicenseMIT

Herd

Herd a pack of Rails mongrels. You can use it to control multiple mongrel clusters in different directories at the same time. Herd started as a project to manage the different projects on my development machine, so that is how it has been used and tested.

Syntax

herd action projectname

Examples

herd help

herd help

Show all herd options. It looks a lot like this readme.

herd init

herd init foobar

Create a new entry in ~/.herd.yml for the foobar project:

---
foobar:
  merbs: []
  mongrel_options: []
  rails_dirs: []

The next step is to edit this entry in a text editor, to define your rails and/or merb directories and mongrel options:

---
foobar:
  merbs:
    - ~/projects/foobar/fileserver
  mongrel_options: --clean
  rails_dirs:
    - ~/projects/foobar/backend
    - ~/projects/foobar/frontend

herd start | stop | restart

herd start   projectname [extra mongrel options]
herd stop    projectname [extra mongrel options]
herd restart projectname [extra mongrel options]

Send a command to the mongrel cluster of each rails directory in the project. You can optionally specify extra mongrel options that need to be added to the configured mongrel options for this call only.

herd list

herd list

List a short summary of all existing projects:

foobar
  rails_dirs: 2
    - ~/projects/foobar/backend
    - ~/projects/foobar/frontend
  merbs: 1
    - ~/projects/foobar/fileserver
  mongrel_options: --clean

Ideas

Turn herd into a gem Refactor code into multiple smaller classes with their own responsibilities. A first rough divide:

  • Herd (for top-level coordination and managing multiple projects)

  • Project (represent one project)

  • MongrelGroup (represent a number of mongrels and their configuration)

  • MerbGroup (represent a number of merbs and their configuration)

About

Author

Wes ‘Narnach’ Oldenbeuving (github.com/Narnach)

Contributors

Filip H.F. ‘FiXato’ Slagter (github.com/FiXato)

Website

github.com/Narnach/herd

Copyright

Copyright © 2008 Wes Oldenbeuving

License

MIT license. See MIT-LICENSE for license details.