Compare commits

...

12 Commits

Author SHA1 Message Date
David Dollar
a278755ae4 0.34.0 2012-01-16 09:42:07 -05:00
David Dollar
3367a060a7 update man page 2012-01-16 09:41:36 -05:00
David Dollar
ac7e0743ac update docs for -d 2012-01-16 09:39:54 -05:00
David Dollar
e574880814 Merge pull request #101 from ndbroadbent/foreman
---

I just discovered the LiveReload gem, and wanted to use foreman to help me set up my development environments.

I didnt want to check in my custom development Procfiles, so I needed to alter the behaviour of:

> [The Procfiles] containing directory will be assumed to be the root directory of the application.

Ive set up some shared `Procfiles` for development, such as `Rails3Dev`, `Rails31Dev`, `JekyllDev`, etc.

Then I set up a bash alias for each of these Procfiles, such as:

```bash
alias rd31="foreman start -d . -f ~/dev/procfiles/Rails31Dev"
```

The only thing missing was the `-d` flag.

My `Rails31Dev` file looks like this:

```yaml
compass: compass watch --sass-dir app/assets/stylesheets --css-dir public/assets
livereload: livereload
passenger: passenger start
```

Thanks!

Conflicts:
	lib/foreman/cli.rb
2012-01-16 09:38:25 -05:00
Craig R Webster
7132cacbf6 Wrap around to the first colour when all the colours are used 2012-01-16 09:35:51 -05:00
David Dollar
c1f279aa6f run specs in random order 2012-01-16 09:33:34 -05:00
David Dollar
34cfe9ef9d update rspec 2012-01-16 09:33:34 -05:00
David Dollar
79fc3b8029 pedantry 2012-01-16 09:33:34 -05:00
Matthijs Langenberg
91140638e1 Set executable bit on runit run scripts. 2012-01-16 09:33:34 -05:00
David Dollar
48cc60c30f Merge pull request #114 from gburt/master
add more colors
2012-01-16 06:21:28 -08:00
Gabriel Burt
5de1bd18ac add more colors 2011-12-30 13:55:46 -06:00
Nathan Broadbent
8bc8cb4b2e Added option to specify app_root, if executing a Procfile from a shared location 2011-12-03 15:16:06 +08:00
10 changed files with 32 additions and 19 deletions

View File

@@ -9,7 +9,7 @@ group :development do
gem 'fakefs', '~> 0.3.2'
gem 'rcov', '~> 0.9.8'
gem 'rr', '~> 1.0.2'
gem 'rspec', '~> 2.6.0'
gem 'rspec', '~> 2.0'
gem 'aws-s3'
gem "rubyzip"
end

View File

@@ -1,7 +1,7 @@
PATH
remote: .
specs:
foreman (0.33.1)
foreman (0.34.0)
term-ansicolor (~> 1.0.5)
thor (>= 0.13.6)
@@ -14,7 +14,7 @@ GEM
xml-simple
builder (3.0.0)
crack (0.1.8)
diff-lcs (1.1.2)
diff-lcs (1.1.3)
fakefs (0.3.2)
hpricot (0.8.2)
mime-types (1.16)
@@ -33,14 +33,14 @@ GEM
mustache (>= 0.7.0)
rdiscount (>= 1.5.8)
rr (1.0.2)
rspec (2.6.0)
rspec-core (~> 2.6.0)
rspec-expectations (~> 2.6.0)
rspec-mocks (~> 2.6.0)
rspec-core (2.6.4)
rspec-expectations (2.6.0)
rspec (2.8.0)
rspec-core (~> 2.8.0)
rspec-expectations (~> 2.8.0)
rspec-mocks (~> 2.8.0)
rspec-core (2.8.0)
rspec-expectations (2.8.0)
diff-lcs (~> 1.1.2)
rspec-mocks (2.6.0)
rspec-mocks (2.8.0)
rubyzip (0.9.4)
term-ansicolor (1.0.7)
thor (0.14.6)
@@ -58,5 +58,5 @@ DEPENDENCIES
rcov (~> 0.9.8)
ronn
rr (~> 1.0.2)
rspec (~> 2.6.0)
rspec (~> 2.0)
rubyzip

View File

@@ -7,8 +7,7 @@ require "yaml"
class Foreman::CLI < Thor
class_option :procfile, :type => :string, :aliases => "-f", :desc => "Default: Procfile"
desc "start", "Start the application"
class_option :app_root, :type => :string, :aliases => "-d", :desc => "Default: Procfile directory"
method_option :env, :type => :string, :aliases => "-e", :desc => "Specify an environment file to load, defaults to .env"
method_option :port, :type => :numeric, :aliases => "-p"

View File

@@ -17,11 +17,13 @@ class Foreman::Engine
extend Term::ANSIColor
COLORS = [ cyan, yellow, green, magenta, red ]
COLORS = [ cyan, yellow, green, magenta, red, blue,
intense_cyan, intense_yellow, intense_green, intense_magenta,
intense_red, intense_blue ]
def initialize(procfile, options={})
@procfile = Foreman::Procfile.new(procfile)
@directory = File.expand_path(File.dirname(procfile))
@directory = options[:app_root] || File.expand_path(File.dirname(procfile))
@options = options
@environment = read_environment_files(options[:env])
@output_mutex = Mutex.new
@@ -182,7 +184,8 @@ private ######################################################################
def next_color
@current_color ||= -1
@current_color += 1
@current_color >= COLORS.length ? "" : COLORS[@current_color]
@current_color = 0 if COLORS.length < @current_color
COLORS[@current_color]
end
module Env

View File

@@ -29,6 +29,7 @@ class Foreman::Export::Runit < Foreman::Export::Base
run = ERB.new(run_template).result(binding)
write_file "#{process_directory}/run", run
FileUtils.chmod 0755, "#{process_directory}/run"
port = engine.port_for(process, num, options[:port])
environment_variables = {'PORT' => port}.
@@ -41,7 +42,7 @@ class Foreman::Export::Runit < Foreman::Export::Base
log_run = ERB.new(log_run_template).result(binding)
write_file "#{process_log_directory}/run", log_run
FileUtils.chmod 0755, "#{process_log_directory}/run"
end
end

View File

@@ -1,5 +1,5 @@
module Foreman
VERSION = "0.33.1"
VERSION = "0.34.0"
end

View File

@@ -1,7 +1,7 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "FOREMAN" "1" "November 2011" "Foreman 0.26.0" "Foreman Manual"
.TH "FOREMAN" "1" "January 2012" "Foreman 0.33.1" "Foreman Manual"
.
.SH "NAME"
\fBforeman\fR \- manage Procfile\-based applications
@@ -68,6 +68,10 @@ Specify the user the application should be run as\. Defaults to the app name
These options control all modes of foreman\'s operation\.
.
.TP
\fB\-d\fR, \fB\-\-directory\fR
Specify an alternate application root\. This defaults to the directory containing the Procfile\.
.
.TP
\fB\-e\fR, \fB\-\-env\fR
Specify an alternate environment file\. You can specify more than one file by using: \fB\-\-env file1,file2\fR\.
.

View File

@@ -66,6 +66,10 @@ The following options control how the application is run:
These options control all modes of foreman's operation.
* `-d`, `--directory`:
Specify an alternate application root. This defaults to the directory
containing the Procfile.
* `-e`, `--env`:
Specify an alternate environment file. You can specify more than one
file by using: `--env file1,file2`.

View File

@@ -10,6 +10,7 @@ describe Foreman::Export::Runit do
before(:each) { load_export_templates_into_fakefs("runit") }
before(:each) { stub(runit).say }
before(:each) { stub(FakeFS::FileUtils).chmod }
it "exports to the filesystem" do
FileUtils.mkdir_p('/tmp/init')

View File

@@ -75,6 +75,7 @@ end
RSpec.configure do |config|
config.color_enabled = true
config.order = 'rand'
config.include FakeFS::SpecHelpers
config.mock_with :rr
end