foreman 0.18.0 → 0.19.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/foreman/cli.rb +2 -1
- data/lib/foreman/export/base.rb +6 -2
- data/lib/foreman/export/upstart.rb +4 -3
- data/lib/foreman/version.rb +1 -1
- data/spec/foreman/export/upstart_spec.rb +15 -0
- data/spec/spec_helper.rb +1 -1
- metadata +3 -3
data/lib/foreman/cli.rb
CHANGED
@@ -30,6 +30,7 @@ class Foreman::CLI < Thor
|
|
30
30
|
method_option :log, :type => :string, :aliases => "-l"
|
31
31
|
method_option :port, :type => :numeric, :aliases => "-p"
|
32
32
|
method_option :user, :type => :string, :aliases => "-u"
|
33
|
+
method_option :template, :type => :string, :aliases => "-t"
|
33
34
|
method_option :concurrency, :type => :string, :aliases => "-c",
|
34
35
|
:banner => '"alpha=5,bar=3"'
|
35
36
|
|
@@ -86,7 +87,7 @@ private ######################################################################
|
|
86
87
|
def options
|
87
88
|
original_options = super
|
88
89
|
return original_options unless File.exists?(".foreman")
|
89
|
-
defaults = YAML::load_file(".foreman")
|
90
|
+
defaults = YAML::load_file(".foreman") || {}
|
90
91
|
Thor::CoreExt::HashWithIndifferentAccess.new(defaults.merge(original_options))
|
91
92
|
end
|
92
93
|
|
data/lib/foreman/export/base.rb
CHANGED
@@ -23,8 +23,12 @@ private ######################################################################
|
|
23
23
|
puts "[foreman export] %s" % message
|
24
24
|
end
|
25
25
|
|
26
|
-
def export_template(
|
27
|
-
File.
|
26
|
+
def export_template(exporter, file, template_root)
|
27
|
+
if template_root && File.exist?(file_path = File.join(template_root, file))
|
28
|
+
File.read(file_path)
|
29
|
+
else
|
30
|
+
File.read(File.expand_path("../../../../data/export/#{exporter}/#{file}", __FILE__))
|
31
|
+
end
|
28
32
|
end
|
29
33
|
|
30
34
|
def write_file(filename, contents)
|
@@ -11,6 +11,7 @@ class Foreman::Export::Upstart < Foreman::Export::Base
|
|
11
11
|
app = options[:app] || File.basename(engine.directory)
|
12
12
|
user = options[:user] || app
|
13
13
|
log_root = options[:log] || "/var/log/#{app}"
|
14
|
+
template_root = options[:template]
|
14
15
|
|
15
16
|
Dir["#{location}/#{app}*.conf"].each do |file|
|
16
17
|
say "cleaning up: #{file}"
|
@@ -19,14 +20,14 @@ class Foreman::Export::Upstart < Foreman::Export::Base
|
|
19
20
|
|
20
21
|
concurrency = Foreman::Utils.parse_concurrency(options[:concurrency])
|
21
22
|
|
22
|
-
master_template = export_template("upstart
|
23
|
+
master_template = export_template("upstart", "master.conf.erb", template_root)
|
23
24
|
master_config = ERB.new(master_template).result(binding)
|
24
25
|
write_file "#{location}/#{app}.conf", master_config
|
25
26
|
|
26
|
-
process_template = export_template("upstart
|
27
|
+
process_template = export_template("upstart", "process.conf.erb", template_root)
|
27
28
|
|
28
29
|
engine.processes.values.each do |process|
|
29
|
-
process_master_template = export_template("upstart
|
30
|
+
process_master_template = export_template("upstart", "process_master.conf.erb", template_root)
|
30
31
|
process_master_config = ERB.new(process_master_template).result(binding)
|
31
32
|
write_file "#{location}/#{app}-#{process.name}.conf", process_master_config
|
32
33
|
|
data/lib/foreman/version.rb
CHANGED
@@ -21,4 +21,19 @@ describe Foreman::Export::Upstart do
|
|
21
21
|
File.read("/tmp/init/app-bravo.conf").should == example_export_file("upstart/app-bravo.conf")
|
22
22
|
File.read("/tmp/init/app-bravo-1.conf").should == example_export_file("upstart/app-bravo-1.conf")
|
23
23
|
end
|
24
|
+
|
25
|
+
context "with alternate templates" do
|
26
|
+
let(:template_root) { "/tmp/alternate" }
|
27
|
+
|
28
|
+
before do
|
29
|
+
FileUtils.mkdir_p template_root
|
30
|
+
File.open("#{template_root}/master.conf.erb", "w") { |f| f.puts "alternate_template" }
|
31
|
+
end
|
32
|
+
|
33
|
+
it "can export with alternate template files" do
|
34
|
+
upstart.export("/tmp/init", :template => template_root)
|
35
|
+
|
36
|
+
File.read("/tmp/init/app.conf").should == "alternate_template\n"
|
37
|
+
end
|
38
|
+
end
|
24
39
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: foreman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.19.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- David Dollar
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-06-
|
13
|
+
date: 2011-06-27 00:00:00 -04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
requirements:
|
110
110
|
- - ~>
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version: 2.
|
112
|
+
version: 2.6.0
|
113
113
|
type: :development
|
114
114
|
version_requirements: *id009
|
115
115
|
description: Process manager for applications with multiple components
|