Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
efeef5b4f0 | ||
|
|
0eb08dd8ae | ||
|
|
92ba6e0ba7 | ||
|
|
2b90c48eb4 | ||
|
|
dbfd8ba49a | ||
|
|
d6837177cd | ||
|
|
58b45c4933 | ||
|
|
fbdf4d7220 | ||
|
|
895672efe8 | ||
|
|
8597e0dc16 | ||
|
|
408ba06c3f | ||
|
|
a0f82840eb | ||
|
|
1317013898 | ||
|
|
6a7720872f | ||
|
|
b3a5fa9c1b | ||
|
|
41e095cf04 | ||
|
|
2c9f6c25fc | ||
|
|
ce0261c3de | ||
|
|
f138d26e7e | ||
|
|
6000e837fe | ||
|
|
02299c4c1c | ||
|
|
6dc9fe2667 | ||
|
|
a61d808487 | ||
|
|
5f98544dab | ||
|
|
99da671f5d |
109
README.markdown
109
README.markdown
@@ -1,107 +1,4 @@
|
||||
foreman(1) -- manage Procfile-based applications
|
||||
================================================
|
||||
Foreman
|
||||
=======
|
||||
|
||||
## SYNOPSIS
|
||||
|
||||
`foreman start [process]`<br>
|
||||
`foreman export <var>format</var> [location]`
|
||||
|
||||
## DESCRIPTION
|
||||
|
||||
**Foreman** is a manager for Procfile-based applications. Its aim is to
|
||||
abstract away the details of the Procfile format, and allow you to either run
|
||||
your application directly or export it to some other process management
|
||||
format.
|
||||
|
||||
## RUNNING
|
||||
|
||||
`foreman start` is used to run your application directly from the command line.
|
||||
|
||||
If no additional parameters are passed, foreman will run one instance of each
|
||||
type of process defined in your Procfile.
|
||||
|
||||
If a parameter is passed, foreman will run one instance of the specified
|
||||
application type.
|
||||
|
||||
The following options control how the application is run:
|
||||
|
||||
* `-s`, `--screen`:
|
||||
Run the application as a series of screen windows rather than interleaved
|
||||
in stdout.
|
||||
|
||||
## EXPORTING
|
||||
|
||||
`foreman export` is used to export your application to another process
|
||||
management format.
|
||||
|
||||
An location to export can be passed as an argument. This argument may be
|
||||
either required or optional depending on the export format.
|
||||
|
||||
The following options control how the application is run:
|
||||
|
||||
* `-a`, `--app`:
|
||||
Use this name rather than the application's root directory name as the
|
||||
name of the application when exporting.
|
||||
|
||||
* `-c`, `--concurrency`:
|
||||
Specify the number of each process type to run. The value passed in
|
||||
should be in the format `process=num,process=num`
|
||||
|
||||
* `-l`, `--log`:
|
||||
Specify the directory to place process logs in.
|
||||
|
||||
* `-p`, `--port`:
|
||||
Specify which port to use as the base for this application. Should be
|
||||
a multiple of 1000.
|
||||
|
||||
* `-u`, `--user`:
|
||||
Specify the user the application should be run as. Defaults to the
|
||||
app name
|
||||
|
||||
## OPTIONS
|
||||
|
||||
These options control all modes of foreman's operation.
|
||||
|
||||
* `-f`, `--procfile`
|
||||
Specify an alternate location for the application's Procfile. This file's
|
||||
containing directory will be assumed to be the root directory of the
|
||||
application.
|
||||
|
||||
## PROCFILE
|
||||
|
||||
A Procfile should contain both a name for the process and the command used
|
||||
to run it.
|
||||
|
||||
web bundle exec thin start
|
||||
job bundle exec rake jobs:work
|
||||
|
||||
## EXAMPLES
|
||||
|
||||
Start one instance of each process type, interleave the output on stdout:
|
||||
|
||||
$ foreman start
|
||||
|
||||
Export the application in upstart format:
|
||||
|
||||
$ foreman export upstart /etc/init
|
||||
|
||||
Run one process type from the application defined in a specific Procfile:
|
||||
|
||||
$ foreman start alpha -p ~/app/Procfile
|
||||
|
||||
## COPYRIGHT
|
||||
|
||||
Foreman is Copyright (C) 2010 David Dollar <http://daviddollar.org>
|
||||
|
||||
|
||||
[SYNOPSIS]: #SYNOPSIS "SYNOPSIS"
|
||||
[DESCRIPTION]: #DESCRIPTION "DESCRIPTION"
|
||||
[RUNNING]: #RUNNING "RUNNING"
|
||||
[EXPORTING]: #EXPORTING "EXPORTING"
|
||||
[OPTIONS]: #OPTIONS "OPTIONS"
|
||||
[PROCFILE]: #PROCFILE "PROCFILE"
|
||||
[EXAMPLES]: #EXAMPLES "EXAMPLES"
|
||||
[COPYRIGHT]: #COPYRIGHT "COPYRIGHT"
|
||||
|
||||
|
||||
[foreman(1)]: foreman.1.html
|
||||
See the [man page](http://ddollar.github.com/foreman) for usage.
|
||||
|
||||
1
Rakefile
1
Rakefile
@@ -29,7 +29,6 @@ task :man do
|
||||
ENV['RONN_MANUAL'] = "Foreman Manual"
|
||||
ENV['RONN_ORGANIZATION'] = "Foreman #{Foreman::VERSION}"
|
||||
sh "ronn -w -s toc -r5 --markdown man/*.ronn"
|
||||
sh "cp man/foreman.1.markdown README.markdown"
|
||||
sh "git add README.markdown"
|
||||
sh "git commit -m 'update readme' || echo 'nothing to commit'"
|
||||
end
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
|
||||
Gem::Specification.new do |s|
|
||||
s.name = %q{foreman}
|
||||
s.version = "0.5.0"
|
||||
s.version = "0.6.0"
|
||||
|
||||
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
||||
s.authors = ["David Dollar"]
|
||||
s.date = %q{2010-06-30}
|
||||
s.date = %q{2010-07-06}
|
||||
s.default_executable = %q{foreman}
|
||||
s.description = %q{Process manager for applications with multiple components}
|
||||
s.email = %q{ddollar@gmail.com}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
module Foreman
|
||||
|
||||
VERSION = "0.5.0"
|
||||
VERSION = "0.6.0"
|
||||
|
||||
class AppDoesNotExist < Exception; end
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ require "foreman/process"
|
||||
require "pty"
|
||||
require "tempfile"
|
||||
require "term/ansicolor"
|
||||
require "fileutils"
|
||||
|
||||
class Foreman::Engine
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ class Foreman::Export::Inittab < Foreman::Export::Base
|
||||
def export(fname=nil, options={})
|
||||
app = options[:app] || File.basename(engine.directory)
|
||||
user = options[:user] || app
|
||||
log_root = options[:log] || "/var/log"
|
||||
log_root = options[:log] || "/var/log/#{app}"
|
||||
|
||||
concurrency = parse_concurrency(options[:concurrency])
|
||||
|
||||
|
||||
@@ -62,11 +62,39 @@ The following options control how the application is run:
|
||||
|
||||
These options control all modes of foreman's operation.
|
||||
|
||||
* `-f`, `--procfile`
|
||||
* `-f`, `--procfile`:
|
||||
Specify an alternate location for the application's Procfile. This file's
|
||||
containing directory will be assumed to be the root directory of the
|
||||
application.
|
||||
|
||||
## EXPORT FORMATS
|
||||
|
||||
foreman currently supports the following output formats:
|
||||
|
||||
* inittab
|
||||
|
||||
* upstart
|
||||
|
||||
## INITTAB EXPORT
|
||||
|
||||
Will export a chunk of inittab-compatible configuration:
|
||||
|
||||
# ----- foreman example processes -----
|
||||
EX01:4:respawn:/bin/su - example -c 'PORT=5000 bundle exec thin start >> /var/log/web-1.log 2>&1'
|
||||
EX02:4:respawn:/bin/su - example -c 'PORT=5100 bundle exec rake jobs:work >> /var/log/job-1.log 2>&1'
|
||||
# ----- end foreman example processes -----
|
||||
|
||||
## UPSTART EXPORT
|
||||
|
||||
Will create a series of upstart scripts in the location you specify. Scripts
|
||||
will be structured to make the following commands valid:
|
||||
|
||||
`start appname`
|
||||
|
||||
`stop appname-processname`
|
||||
|
||||
`restart appname-processname-3`
|
||||
|
||||
## PROCFILE
|
||||
|
||||
A Procfile should contain both a name for the process and the command used
|
||||
|
||||
Reference in New Issue
Block a user