Compare commits

..

12 Commits

Author SHA1 Message Date
David Dollar
9901b9f924 0.48.0.pre3 2012-06-18 00:11:43 -04:00
David Dollar
4c2d569810 0.48.0.pre2 2012-06-18 00:11:23 -04:00
David Dollar
26f9c8186d allow color to be forced on 2012-06-18 00:11:23 -04:00
David Dollar
24ed8946f3 terminate gracefully if stdout goes away 2012-06-18 00:11:23 -04:00
David Dollar
83b2a9cc50 always flush output 2012-06-18 00:11:22 -04:00
David Dollar
a0228b9fa0 Merge pull request #212 from morgoth/added-version-command
added command for displaying foreman version
2012-06-12 09:37:07 -07:00
Wojciech Wnętrzak
b1a2a4a0cd added command for displaying foreman version 2012-06-12 17:16:35 +02:00
David Dollar
7774b7f150 Merge pull request #211 from morgoth/fixed-yaml-usage
fixed using YAML
2012-06-11 12:57:24 -07:00
Wojciech Wnętrzak
b01355a093 fixed using YAML 2012-06-11 21:42:59 +02:00
David Dollar
8b18143281 test on more things, but don't fail 2012-06-11 13:34:08 -04:00
David Dollar
e06886ed57 changelog 2012-06-11 12:34:16 -04:00
David Dollar
d6a00d7262 0.48.0.pre1 2012-06-11 12:27:20 -04:00
8 changed files with 65 additions and 15 deletions

View File

@@ -1,8 +1,11 @@
script: bundle exec rake spec
rvm:
- 1.9.2
- 1.9.3
matrix:
allow_failures:
- rvm: 1.8.7
- rvm: jruby
- rvm: rbx
- rvm: ree
notifications:
email: false
@@ -11,3 +14,11 @@ notifications:
on_failure: always
urls:
- http://dx-helper.herokuapp.com/travis
rvm:
- 1.8.7
- 1.9.2
- 1.9.3
- jruby
- rbx
- ree

View File

@@ -1,3 +1,20 @@
## 0.48.0.pre1 (2012-06-11)
* Massive refactoring for programmatic control and stability [David Dollar]
* Procfile commands with shell interpolations now work again [David Dollar]
* Stop trying to test on Ruby 1.8 [David Dollar]
## 0.47.0 (2012-06-07)
* Fix multi-word argument handling in `foreman run`. [Daniel Brockman]
* Make 'PORT=5000 foreman start' work [Koen Van der Auwera]
* Terminate gracefully upon SIGHUP [Stefan Schüßler]
* Set port from .env if specified [Koen Van der Auwera]
* Updated bluepill exporter to use environment variables from .env [Aneeth]
* Added launchd exporter [Maxwell Swadling]
* Quote and escape environment variables in upstart templates [Matt Griffin]
* Added list of ports to other languages to README [elf Pavlik]
## 0.46.0 (2012-05-02)
* Add Profile load/write/append API [Michael Granger]

View File

@@ -1,7 +1,7 @@
PATH
remote: .
specs:
foreman (0.47.0)
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)

View File

@@ -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

View File

@@ -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

View File

@@ -1,5 +1,5 @@
module Foreman
VERSION = "0.47.0"
VERSION = "0.48.0.pre3"
end

View File

@@ -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

View File

@@ -35,7 +35,7 @@ def newer_release
tags = %x{ git tag --contains v#{latest_release} }.split("\n").sort_by do |tag|
Gem::Version.new(tag[1..-1])
end
tags.reject { |tag| Gem::Version.new(tag[1..-1]).prerelease? }[1]
tags[1]
end
desc "Generate a Changelog"