diff --git a/lib/foreman/cli.rb b/lib/foreman/cli.rb index a311f92..848717d 100644 --- a/lib/foreman/cli.rb +++ b/lib/foreman/cli.rb @@ -5,7 +5,7 @@ require "thor" class Foreman::CLI < Thor - class_option :procfile, :type => :string, :aliases => "-f", :desc => "Default: ./Procfile" + class_option :pstypes, :type => :string, :aliases => "-f", :desc => "Default: Pstypes" desc "start [PROCESS]", "Start the application, or a specific process" @@ -14,7 +14,7 @@ class Foreman::CLI < Thor :banner => '"alpha=5,bar=3"' def start(process=nil) - check_procfile! + check_pstypes! if process engine.execute(process, options) @@ -33,7 +33,7 @@ class Foreman::CLI < Thor :banner => '"alpha=5,bar=3"' def export(format, location=nil) - check_procfile! + check_pstypes! formatter = case format when "upstart" then Foreman::Export::Upstart @@ -49,16 +49,16 @@ class Foreman::CLI < Thor private ###################################################################### - def check_procfile! - error("Procfile does not exist.") unless File.exist?(procfile) + def check_pstypes! + error("#{pstypes} does not exist.") unless File.exist?(pstypes) end def engine - @engine ||= Foreman::Engine.new(procfile) + @engine ||= Foreman::Engine.new(pstypes) end - def procfile - options[:procfile] || "./Procfile" + def pstypes + options[:pstypes] || "Pstypes" end private ###################################################################### @@ -68,8 +68,8 @@ private ###################################################################### exit 1 end - def procfile_exists?(procfile) - File.exist?(procfile) + def pstypes_exists?(pstypes) + File.exist?(pstypes) end end diff --git a/lib/foreman/engine.rb b/lib/foreman/engine.rb index c6f6db3..3a15d48 100644 --- a/lib/foreman/engine.rb +++ b/lib/foreman/engine.rb @@ -8,21 +8,21 @@ require "fileutils" class Foreman::Engine - attr_reader :procfile + attr_reader :pstypes attr_reader :directory extend Term::ANSIColor COLORS = [ cyan, yellow, green, magenta, red ] - def initialize(procfile) - @procfile = read_procfile(procfile) - @directory = File.expand_path(File.dirname(procfile)) + def initialize(pstypes) + @pstypes = read_pstypes(pstypes) + @directory = File.expand_path(File.dirname(pstypes)) end def processes @processes ||= begin - procfile.split("\n").inject({}) do |hash, line| + pstypes.split("\n").inject({}) do |hash, line| next if line.strip == "" name, command = line.split(" ", 2) process = Foreman::Process.new(name, command) @@ -140,8 +140,8 @@ private ###################################################################### $0 = title end - def read_procfile(procfile) - File.read(procfile) + def read_pstypes(pstypes) + File.read(pstypes) end def watch_for_termination diff --git a/man/foreman.1.ronn b/man/foreman.1.ronn index 7a79759..7af367f 100644 --- a/man/foreman.1.ronn +++ b/man/foreman.1.ronn @@ -1,4 +1,4 @@ -foreman(1) -- manage Procfile-based applications +foreman(1) -- manage Pstypes-based applications ================================================ ## SYNOPSIS @@ -8,8 +8,8 @@ foreman(1) -- manage Procfile-based applications ## 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 +**Foreman** is a manager for Pstypes-based applications. Its aim is to +abstract away the details of the Pstypes format, and allow you to either run your application directly or export it to some other process management format. @@ -18,7 +18,7 @@ format. `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. +type of process defined in your Pstypes. If a parameter is passed, foreman will run one instance of the specified application type. @@ -66,8 +66,8 @@ The following options control how the application is run: These options control all modes of foreman's operation. - * `-f`, `--procfile`: - Specify an alternate location for the application's Procfile. This file's + * `-f`, `--pstypes`: + Specify an alternate location for the application's Pstypes. This file's containing directory will be assumed to be the root directory of the application. @@ -99,9 +99,9 @@ will be structured to make the following commands valid: `restart appname-processname-3` -## PROCFILE +## PSTYPES -A Procfile should contain both a name for the process and the command used +A Pstyes file should contain both a name for the process and the command used to run it. web bundle exec thin start @@ -117,9 +117,9 @@ Export the application in upstart format: $ foreman export upstart /etc/init -Run one process type from the application defined in a specific Procfile: +Run one process type from the application defined in a specific Pstypes: - $ foreman start alpha -p ~/app/Procfile + $ foreman start alpha -p ~/app/Pstypes ## COPYRIGHT diff --git a/spec/foreman/cli_spec.rb b/spec/foreman/cli_spec.rb index a1b8305..9b1986a 100644 --- a/spec/foreman/cli_spec.rb +++ b/spec/foreman/cli_spec.rb @@ -5,17 +5,17 @@ describe "Foreman::CLI" do subject { Foreman::CLI.new } describe "start" do - describe "with a non-existent Procfile" do + describe "with a non-existent Pstypes" do it "prints an error" do - mock_error(subject, "Procfile does not exist.") do + mock_error(subject, "Pstypes does not exist.") do dont_allow.instance_of(Foreman::Engine).start subject.start end end end - describe "with a Procfile" do - before(:each) { write_procfile } + describe "with a Pstypes" do + before(:each) { write_pstypes } it "runs successfully" do dont_allow(subject).error @@ -26,17 +26,17 @@ describe "Foreman::CLI" do end describe "export" do - describe "with a non-existent Procfile" do + describe "with a non-existent Pstypes" do it "prints an error" do - mock_error(subject, "Procfile does not exist.") do + mock_error(subject, "Pstypes does not exist.") do dont_allow.instance_of(Foreman::Engine).export subject.export("testapp") end end end - describe "with a Procfile" do - before(:each) { write_procfile } + describe "with a Pstypes" do + before(:each) { write_pstypes } describe "with an invalid formatter" do it "prints an error" do diff --git a/spec/foreman/engine_spec.rb b/spec/foreman/engine_spec.rb index 0c030a0..53ac06d 100644 --- a/spec/foreman/engine_spec.rb +++ b/spec/foreman/engine_spec.rb @@ -2,18 +2,18 @@ require "spec_helper" require "foreman/engine" describe "Foreman::Engine" do - subject { Foreman::Engine.new("Procfile") } + subject { Foreman::Engine.new("Pstypes") } describe "initialize" do - describe "without an existing Procfile" do + describe "without an existing Pstypes" do it "raises an error" do lambda { subject }.should raise_error end end - describe "with a Procfile" do + describe "with a Pstypes" do it "reads the processes" do - write_procfile + write_pstypes subject.processes["alpha"].command.should == "./alpha" subject.processes["bravo"].command.should == "./bravo" end @@ -22,7 +22,7 @@ describe "Foreman::Engine" do describe "start" do it "forks the processes" do - write_procfile + write_pstypes mock(subject).fork(subject.processes["alpha"], {}) mock(subject).fork(subject.processes["bravo"], {}) mock(subject).watch_for_termination @@ -30,7 +30,7 @@ describe "Foreman::Engine" do end it "handles concurrency" do - write_procfile + write_pstypes mock(subject).fork_individual(subject.processes["alpha"], 5000) mock(subject).fork_individual(subject.processes["alpha"], 5001) mock(subject).fork_individual(subject.processes["bravo"], 5100) @@ -41,7 +41,7 @@ describe "Foreman::Engine" do describe "execute" do it "runs the processes" do - write_procfile + write_pstypes mock(subject).fork(subject.processes["alpha"], {}) mock(subject).watch_for_termination subject.execute("alpha") diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index b8fe97f..e13faaf 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -24,8 +24,8 @@ def write_foreman_config(app) end end -def write_procfile(procfile="Procfile") - File.open(procfile, "w") do |file| +def write_pstypes(pstypes="Pstypes") + File.open(pstypes, "w") do |file| file.puts "alpha ./alpha" file.puts "bravo ./bravo" end