From 86e3cd12dddb47c5901cbaa1aa21b0bf73a3e06c Mon Sep 17 00:00:00 2001 From: David Dollar Date: Fri, 15 Oct 2010 17:25:12 -0700 Subject: [PATCH] using Psfile --- lib/foreman/cli.rb | 20 ++++++++++---------- lib/foreman/engine.rb | 14 +++++++------- man/foreman.1.ronn | 20 ++++++++++---------- spec/foreman/cli_spec.rb | 16 ++++++++-------- spec/foreman/engine_spec.rb | 14 +++++++------- spec/spec_helper.rb | 4 ++-- 6 files changed, 44 insertions(+), 44 deletions(-) diff --git a/lib/foreman/cli.rb b/lib/foreman/cli.rb index 848717d..05289a1 100644 --- a/lib/foreman/cli.rb +++ b/lib/foreman/cli.rb @@ -5,7 +5,7 @@ require "thor" class Foreman::CLI < Thor - class_option :pstypes, :type => :string, :aliases => "-f", :desc => "Default: Pstypes" + class_option :psfile, :type => :string, :aliases => "-f", :desc => "Default: Psfile" 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_pstypes! + check_psfile! 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_pstypes! + check_psfile! formatter = case format when "upstart" then Foreman::Export::Upstart @@ -49,16 +49,16 @@ class Foreman::CLI < Thor private ###################################################################### - def check_pstypes! - error("#{pstypes} does not exist.") unless File.exist?(pstypes) + def check_psfile! + error("#{psfile} does not exist.") unless File.exist?(psfile) end def engine - @engine ||= Foreman::Engine.new(pstypes) + @engine ||= Foreman::Engine.new(psfile) end - def pstypes - options[:pstypes] || "Pstypes" + def psfile + options[:psfile] || "Psfile" end private ###################################################################### @@ -68,8 +68,8 @@ private ###################################################################### exit 1 end - def pstypes_exists?(pstypes) - File.exist?(pstypes) + def psfile_exists?(psfile) + File.exist?(psfile) end end diff --git a/lib/foreman/engine.rb b/lib/foreman/engine.rb index 33592f0..83c8044 100644 --- a/lib/foreman/engine.rb +++ b/lib/foreman/engine.rb @@ -8,21 +8,21 @@ require "fileutils" class Foreman::Engine - attr_reader :pstypes + attr_reader :psfile attr_reader :directory extend Term::ANSIColor COLORS = [ cyan, yellow, green, magenta, red ] - def initialize(pstypes) - @pstypes = read_pstypes(pstypes) - @directory = File.expand_path(File.dirname(pstypes)) + def initialize(psfile) + @psfile = read_psfile(psfile) + @directory = File.expand_path(File.dirname(psfile)) end def processes @processes ||= begin - pstypes.split("\n").inject({}) do |hash, line| + psfile.split("\n").inject({}) do |hash, line| next if line.strip == "" name, command = line.split(" ", 2) process = Foreman::Process.new(name, command) @@ -144,8 +144,8 @@ private ###################################################################### $0 = title end - def read_pstypes(pstypes) - File.read(pstypes) + def read_psfile(psfile) + File.read(psfile) end def watch_for_termination diff --git a/man/foreman.1.ronn b/man/foreman.1.ronn index 7af367f..f009a91 100644 --- a/man/foreman.1.ronn +++ b/man/foreman.1.ronn @@ -1,4 +1,4 @@ -foreman(1) -- manage Pstypes-based applications +foreman(1) -- manage Psfile-based applications ================================================ ## SYNOPSIS @@ -8,8 +8,8 @@ foreman(1) -- manage Pstypes-based applications ## DESCRIPTION -**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 +**Foreman** is a manager for Psfile-based applications. Its aim is to +abstract away the details of the Psfile 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 Pstypes. +type of process defined in your Psfile. 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`, `--pstypes`: - Specify an alternate location for the application's Pstypes. This file's + * `-f`, `--psfile`: + Specify an alternate location for the application's Psfile. 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` -## PSTYPES +## PSFILE -A Pstyes file should contain both a name for the process and the command used +A Psfile 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 Pstypes: +Run one process type from the application defined in a specific Psfile: - $ foreman start alpha -p ~/app/Pstypes + $ foreman start alpha -p ~/myapp/Psfile ## COPYRIGHT diff --git a/spec/foreman/cli_spec.rb b/spec/foreman/cli_spec.rb index 9b1986a..aec3b10 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 Pstypes" do + describe "with a non-existent Psfile" do it "prints an error" do - mock_error(subject, "Pstypes does not exist.") do + mock_error(subject, "Psfile does not exist.") do dont_allow.instance_of(Foreman::Engine).start subject.start end end end - describe "with a Pstypes" do - before(:each) { write_pstypes } + describe "with a Psfile" do + before(:each) { write_psfile } 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 Pstypes" do + describe "with a non-existent Psfile" do it "prints an error" do - mock_error(subject, "Pstypes does not exist.") do + mock_error(subject, "Psfile does not exist.") do dont_allow.instance_of(Foreman::Engine).export subject.export("testapp") end end end - describe "with a Pstypes" do - before(:each) { write_pstypes } + describe "with a Psfile" do + before(:each) { write_psfile } 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 53ac06d..e2526c0 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("Pstypes") } + subject { Foreman::Engine.new("Psfile") } describe "initialize" do - describe "without an existing Pstypes" do + describe "without an existing Psfile" do it "raises an error" do lambda { subject }.should raise_error end end - describe "with a Pstypes" do + describe "with a Psfile" do it "reads the processes" do - write_pstypes + write_psfile 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_pstypes + write_psfile 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_pstypes + write_psfile 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_pstypes + write_psfile 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 e13faaf..cb86e0f 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -24,8 +24,8 @@ def write_foreman_config(app) end end -def write_pstypes(pstypes="Pstypes") - File.open(pstypes, "w") do |file| +def write_psfile(psfile="Psfile") + File.open(psfile, "w") do |file| file.puts "alpha ./alpha" file.puts "bravo ./bravo" end