Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9901b9f924 | |||
| 4c2d569810 | |||
| 26f9c8186d | |||
| 24ed8946f3 | |||
| 83b2a9cc50 | |||
| a0228b9fa0 | |||
| b1a2a4a0cd | |||
| 7774b7f150 | |||
| b01355a093 |
+2
-2
@@ -1,7 +1,7 @@
|
||||
PATH
|
||||
remote: .
|
||||
specs:
|
||||
foreman (0.48.0.pre1)
|
||||
foreman (0.48.0.pre3)
|
||||
thor (>= 0.13.6)
|
||||
|
||||
GEM
|
||||
@@ -39,7 +39,7 @@ GEM
|
||||
multi_json (~> 1.0.3)
|
||||
simplecov-html (~> 0.5.3)
|
||||
simplecov-html (0.5.3)
|
||||
thor (0.14.6)
|
||||
thor (0.15.2)
|
||||
timecop (0.3.5)
|
||||
win32console (1.3.0-x86-mingw32)
|
||||
xml-simple (1.0.15)
|
||||
|
||||
+13
-6
@@ -3,18 +3,23 @@ require "foreman/helpers"
|
||||
require "foreman/engine"
|
||||
require "foreman/engine/cli"
|
||||
require "foreman/export"
|
||||
require "foreman/version"
|
||||
require "shellwords"
|
||||
require "yaml"
|
||||
require "thor"
|
||||
|
||||
class Foreman::CLI < Thor
|
||||
|
||||
include Foreman::Helpers
|
||||
|
||||
map ["-v", "--version"] => :version
|
||||
|
||||
class_option :procfile, :type => :string, :aliases => "-f", :desc => "Default: Procfile"
|
||||
class_option :root, :type => :string, :aliases => "-d", :desc => "Default: Procfile directory"
|
||||
|
||||
desc "start [PROCESS]", "Start the application (or a specific PROCESS)"
|
||||
|
||||
method_option :color, :type => :boolean, :aliases => "-c", :desc => "Force color to be enabled"
|
||||
method_option :env, :type => :string, :aliases => "-e", :desc => "Specify an environment file to load, defaults to .env"
|
||||
method_option :formation, :type => :string, :aliases => "-m", :banner => '"alpha=5,bar=3"'
|
||||
method_option :port, :type => :numeric, :aliases => "-p"
|
||||
@@ -79,15 +84,17 @@ class Foreman::CLI < Thor
|
||||
end
|
||||
end
|
||||
|
||||
desc "version", "Display Foreman gem version"
|
||||
|
||||
def version
|
||||
puts Foreman::VERSION
|
||||
end
|
||||
|
||||
no_tasks do
|
||||
def engine
|
||||
@engine ||= begin
|
||||
engine_class = Foreman::Engine::CLI
|
||||
engine = engine_class.new(
|
||||
:formation => options[:formation],
|
||||
:port => options[:port],
|
||||
:root => options[:root]
|
||||
)
|
||||
engine = engine_class.new(options)
|
||||
engine
|
||||
end
|
||||
end
|
||||
@@ -126,7 +133,7 @@ private ######################################################################
|
||||
def options
|
||||
original_options = super
|
||||
return original_options unless File.exists?(".foreman")
|
||||
defaults = YAML::load_file(".foreman") || {}
|
||||
defaults = ::YAML::load_file(".foreman") || {}
|
||||
Thor::CoreExt::HashWithIndifferentAccess.new(defaults.merge(original_options))
|
||||
end
|
||||
|
||||
|
||||
@@ -24,11 +24,13 @@ class Foreman::Engine::CLI < Foreman::Engine
|
||||
:bright_white => 37,
|
||||
}
|
||||
|
||||
def self.enable(io)
|
||||
def self.enable(io, force=false)
|
||||
io.extend(self)
|
||||
@@color_force = force
|
||||
end
|
||||
|
||||
def color?
|
||||
return true if @@color_force
|
||||
return false unless self.respond_to?(:isatty)
|
||||
self.isatty && ENV["TERM"]
|
||||
end
|
||||
@@ -51,14 +53,17 @@ class Foreman::Engine::CLI < Foreman::Engine
|
||||
|
||||
def output(name, data)
|
||||
data.to_s.chomp.split("\n").each do |message|
|
||||
Color.enable($stdout) unless $stdout.respond_to?(:color?)
|
||||
Color.enable($stdout, options[:color]) unless $stdout.respond_to?(:color?)
|
||||
output = ""
|
||||
output += $stdout.color(@colors[name.split(".").first].to_sym)
|
||||
output += "#{Time.now.strftime("%H:%M:%S")} #{pad_process_name(name)} | "
|
||||
output += $stdout.color(:reset)
|
||||
output += message
|
||||
$stdout.puts output
|
||||
$stdout.flush
|
||||
end
|
||||
rescue Errno::EPIPE
|
||||
terminate_gracefully
|
||||
end
|
||||
|
||||
def shutdown
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
module Foreman
|
||||
|
||||
VERSION = "0.48.0.pre1"
|
||||
VERSION = "0.48.0.pre3"
|
||||
|
||||
end
|
||||
|
||||
@@ -74,4 +74,14 @@ describe "Foreman::CLI", :fakefs do
|
||||
end
|
||||
end
|
||||
|
||||
describe "version" do
|
||||
it "displays gem version" do
|
||||
foreman("version").chomp.should == Foreman::VERSION
|
||||
end
|
||||
|
||||
it "displays gem version on shortcut command" do
|
||||
foreman("-v").chomp.should == Foreman::VERSION
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user