foreman 0.41.0 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,15 @@
|
|
1
1
|
<%
|
2
|
+
app_names = []
|
2
3
|
engine.procfile.entries.each do |process|
|
3
4
|
next if (conc = self.concurrency[process.name]) < 1
|
4
5
|
1.upto(self.concurrency[process.name]) do |num|
|
5
6
|
port = engine.port_for(process, num, self.port)
|
6
7
|
name = if (conc > 1); "#{process.name}-#{num}" else process.name; end
|
7
|
-
environment = (engine.environment.
|
8
|
+
environment = (engine.environment.map{ |var,env| "#{var.upcase}=#{env}" } + ["PORT=#{port}"])
|
9
|
+
app_name = "#{app}-#{name}"
|
10
|
+
app_names << app_name
|
8
11
|
%>
|
9
|
-
[program:<%=
|
12
|
+
[program:<%= app_name %>]
|
10
13
|
command=<%= process.command %>
|
11
14
|
autostart=true
|
12
15
|
autorestart=true
|
@@ -18,4 +21,7 @@ directory=<%= engine.directory %>
|
|
18
21
|
environment=<%= environment.join(',') %><%
|
19
22
|
end
|
20
23
|
end
|
21
|
-
%>
|
24
|
+
%>
|
25
|
+
|
26
|
+
[group:<%= app %>]
|
27
|
+
programs=<%= app_names.join(',') %>
|
data/lib/foreman/engine.rb
CHANGED
@@ -51,6 +51,22 @@ class Foreman::Engine
|
|
51
51
|
environment.each { |k,v| ENV[k] = v }
|
52
52
|
end
|
53
53
|
|
54
|
+
def self.read_environment(filename)
|
55
|
+
return {} unless File.exists?(filename)
|
56
|
+
|
57
|
+
File.read(filename).split("\n").inject({}) do |hash, line|
|
58
|
+
if line =~ /\A([A-Za-z_0-9]+)=(.*)\z/
|
59
|
+
key, val = [$1, $2]
|
60
|
+
case val
|
61
|
+
when /\A'(.*)'\z/ then hash[key] = $1
|
62
|
+
when /\A"(.*)"\z/ then hash[key] = $1.gsub(/\\(.)/, '\1')
|
63
|
+
else hash[key] = val
|
64
|
+
end
|
65
|
+
end
|
66
|
+
hash
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
54
70
|
private ######################################################################
|
55
71
|
|
56
72
|
def spawn_processes
|
@@ -195,26 +211,10 @@ private ######################################################################
|
|
195
211
|
|
196
212
|
(filenames || "").split(",").map(&:strip).each do |filename|
|
197
213
|
error "No such file: #{filename}" unless File.exists?(filename)
|
198
|
-
environment.merge!(read_environment(filename))
|
214
|
+
environment.merge!(Foreman::Engine.read_environment(filename))
|
199
215
|
end
|
200
216
|
|
201
|
-
environment.merge!(read_environment(".env")) unless filenames
|
217
|
+
environment.merge!(Foreman::Engine.read_environment(".env")) unless filenames
|
202
218
|
environment
|
203
219
|
end
|
204
|
-
|
205
|
-
def read_environment(filename)
|
206
|
-
return {} unless File.exists?(filename)
|
207
|
-
|
208
|
-
File.read(filename).split("\n").inject({}) do |hash, line|
|
209
|
-
if line =~ /\A([A-Za-z_0-9]+)=(.*)\z/
|
210
|
-
key, val = [$1, $2]
|
211
|
-
case val
|
212
|
-
when /\A'(.*)'\z/ then hash[key] = $1
|
213
|
-
when /\A"(.*)"\z/ then hash[key] = $1.gsub(/\\(.)/, '\1')
|
214
|
-
else hash[key] = val
|
215
|
-
end
|
216
|
-
end
|
217
|
-
hash
|
218
|
-
end
|
219
|
-
end
|
220
220
|
end
|
data/lib/foreman/version.rb
CHANGED
@@ -30,7 +30,7 @@ describe Foreman::Export::Supervisord, :fakefs do
|
|
30
30
|
|
31
31
|
it "exports to the filesystem with concurrency" do
|
32
32
|
supervisord.export
|
33
|
-
|
33
|
+
|
34
34
|
File.read("/tmp/init/app.conf").should == example_export_file("supervisord/app-alpha-2.conf")
|
35
35
|
end
|
36
36
|
end
|
@@ -46,7 +46,7 @@ describe Foreman::Export::Supervisord, :fakefs do
|
|
46
46
|
|
47
47
|
it "can export with alternate template files" do
|
48
48
|
supervisord.export
|
49
|
-
|
49
|
+
|
50
50
|
File.read("/tmp/init/app.conf").should == "alternate_template\n"
|
51
51
|
end
|
52
52
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.42.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &70264218748020 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: 0.13.6
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70264218748020
|
25
25
|
description: Process manager for applications with multiple components
|
26
26
|
email: ddollar@gmail.com
|
27
27
|
executables:
|
@@ -110,18 +110,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
110
|
- - ! '>='
|
111
111
|
- !ruby/object:Gem::Version
|
112
112
|
version: '0'
|
113
|
-
segments:
|
114
|
-
- 0
|
115
|
-
hash: 4054055636504419796
|
116
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
114
|
none: false
|
118
115
|
requirements:
|
119
116
|
- - ! '>='
|
120
117
|
- !ruby/object:Gem::Version
|
121
118
|
version: '0'
|
122
|
-
segments:
|
123
|
-
- 0
|
124
|
-
hash: 4054055636504419796
|
125
119
|
requirements: []
|
126
120
|
rubyforge_project:
|
127
121
|
rubygems_version: 1.8.11
|