foreman 0.64.0 → 0.65.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.
- data/data/export/bluepill/master.pill.erb +1 -1
- data/data/export/runit/log/run.erb +1 -1
- data/data/export/runit/run.erb +1 -0
- data/data/export/supervisord/app.conf.erb +1 -1
- data/data/export/systemd/master.target.erb +5 -0
- data/data/export/systemd/process.service.erb +0 -3
- data/data/export/systemd/process_master.target.erb +1 -3
- data/data/export/upstart/master.conf.erb +1 -11
- data/data/export/upstart/process.conf.erb +10 -1
- data/lib/foreman/export/base.rb +8 -4
- data/lib/foreman/export/launchd.rb +6 -1
- data/lib/foreman/export/systemd.rb +9 -2
- data/lib/foreman/process.rb +1 -1
- data/lib/foreman/version.rb +1 -1
- data/man/foreman.1 +1 -1
- data/spec/resources/export/runit/app-alpha-1/log/run +1 -1
- data/spec/resources/export/runit/app-alpha-2/log/run +1 -1
- data/spec/resources/export/runit/app-bravo-1/log/run +1 -1
- data/spec/resources/export/supervisord/app-alpha-1.conf +4 -4
- data/spec/resources/export/supervisord/app-alpha-2.conf +2 -2
- metadata +23 -12
- checksums.yaml +0 -7
- data/bin/taskman +0 -8
@@ -7,7 +7,7 @@ Bluepill.application("<%= app %>", :foreground => false, :log_file => "/var/log/
|
|
7
7
|
<% 1.upto(engine.formation[name]) do |num| %>
|
8
8
|
<% port = engine.port_for(process, num) %>
|
9
9
|
app.process("<%= name %>-<%= num %>") do |process|
|
10
|
-
process.start_command =
|
10
|
+
process.start_command = %Q{<%= process.command %>}
|
11
11
|
|
12
12
|
process.working_dir = "<%= engine.root %>"
|
13
13
|
process.daemonize = true
|
data/data/export/runit/run.erb
CHANGED
@@ -5,7 +5,7 @@ engine.each_process do |name, process|
|
|
5
5
|
port = engine.port_for(process, num)
|
6
6
|
full_name = "#{app}-#{name}-#{num}"
|
7
7
|
environment = engine.env.merge("PORT" => port.to_s).map do |key, value|
|
8
|
-
"#{key}
|
8
|
+
"#{key}=\"#{shell_quote(value)}\""
|
9
9
|
end
|
10
10
|
app_names << full_name
|
11
11
|
%>
|
@@ -2,4 +2,13 @@ start on starting <%= app %>-<%= name %>
|
|
2
2
|
stop on stopping <%= app %>-<%= name %>
|
3
3
|
respawn
|
4
4
|
|
5
|
-
|
5
|
+
env PORT=<%= port %>
|
6
|
+
<% engine.env.each do |name,value| -%>
|
7
|
+
env <%= name.upcase %>='<%= value.gsub(/'/, "'\"'\"'") %>'
|
8
|
+
<% end -%>
|
9
|
+
|
10
|
+
setuid <%= user %>
|
11
|
+
|
12
|
+
chdir <%= engine.root %>
|
13
|
+
|
14
|
+
exec <%= process.command %>
|
data/lib/foreman/export/base.rb
CHANGED
@@ -46,10 +46,8 @@ class Foreman::Export::Base
|
|
46
46
|
def export
|
47
47
|
error("Must specify a location") unless location
|
48
48
|
FileUtils.mkdir_p(location) rescue error("Could not create: #{location}")
|
49
|
-
|
50
|
-
|
51
|
-
FileUtils.chown(user, nil, log) rescue error("Could not chown #{log} to #{user}")
|
52
|
-
FileUtils.chown(user, nil, run) rescue error("Could not chown #{run} to #{user}")
|
49
|
+
chown user, log
|
50
|
+
chown user, run
|
53
51
|
end
|
54
52
|
|
55
53
|
def app
|
@@ -82,6 +80,12 @@ private ######################################################################
|
|
82
80
|
@@deprecation_warned = true
|
83
81
|
end
|
84
82
|
|
83
|
+
def chown user, dir
|
84
|
+
FileUtils.chown user, nil, dir
|
85
|
+
rescue
|
86
|
+
error("Could not chown #{dir} to #{user}") unless File.writable? dir
|
87
|
+
end
|
88
|
+
|
85
89
|
def error(message)
|
86
90
|
raise Foreman::Export::Exception.new(message)
|
87
91
|
end
|
@@ -8,7 +8,12 @@ class Foreman::Export::Launchd < Foreman::Export::Base
|
|
8
8
|
engine.each_process do |name, process|
|
9
9
|
1.upto(engine.formation[name]) do |num|
|
10
10
|
port = engine.port_for(process, num)
|
11
|
-
command_args = process.command.split(
|
11
|
+
command_args = process.command.split(/\s+/).map{|arg|
|
12
|
+
case arg
|
13
|
+
when "$PORT" then port
|
14
|
+
else arg
|
15
|
+
end
|
16
|
+
}
|
12
17
|
write_template "launchd/launchd.plist.erb", "#{app}-#{name}-#{num}.plist", binding
|
13
18
|
end
|
14
19
|
end
|
@@ -10,16 +10,23 @@ class Foreman::Export::Systemd < Foreman::Export::Base
|
|
10
10
|
clean file
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
process_master_names = []
|
14
14
|
|
15
15
|
engine.each_process do |name, process|
|
16
16
|
next if engine.formation[name] < 1
|
17
|
-
|
17
|
+
|
18
|
+
process_names = []
|
18
19
|
|
19
20
|
1.upto(engine.formation[name]) do |num|
|
20
21
|
port = engine.port_for(process, num)
|
21
22
|
write_template "systemd/process.service.erb", "#{app}-#{name}-#{num}.service", binding
|
23
|
+
process_names << "#{app}-#{name}-#{num}.service"
|
22
24
|
end
|
25
|
+
|
26
|
+
write_template "systemd/process_master.target.erb", "#{app}-#{name}.target", binding
|
27
|
+
process_master_names << "#{app}-#{name}.target"
|
23
28
|
end
|
29
|
+
|
30
|
+
write_template "systemd/master.target.erb", "#{app}.target", binding
|
24
31
|
end
|
25
32
|
end
|
data/lib/foreman/process.rb
CHANGED
@@ -59,7 +59,7 @@ class Foreman::Process
|
|
59
59
|
wrapped_command = "#{runner} -d '#{cwd.shellescape}' -p -- #{expanded_command(env)}"
|
60
60
|
POSIX::Spawn.spawn(*spawn_args(env, wrapped_command.shellsplit, {:out => output, :err => output}))
|
61
61
|
else
|
62
|
-
wrapped_command = "#{runner} -d '#{cwd.shellescape}' -p -- #{command}"
|
62
|
+
wrapped_command = "exec #{runner} -d '#{cwd.shellescape}' -p -- #{command}"
|
63
63
|
Process.spawn env, wrapped_command, :out => output, :err => output
|
64
64
|
end
|
65
65
|
end
|
data/lib/foreman/version.rb
CHANGED
data/man/foreman.1
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
.\" generated with Ronn/v0.7.3
|
2
2
|
.\" http://github.com/rtomayko/ronn/tree/0.7.3
|
3
3
|
.
|
4
|
-
.TH "FOREMAN" "1" "April 2014" "Foreman 0.
|
4
|
+
.TH "FOREMAN" "1" "April 2014" "Foreman 0.65.0" "Foreman Manual"
|
5
5
|
.
|
6
6
|
.SH "NAME"
|
7
7
|
\fBforeman\fR \- manage Procfile\-based applications
|
@@ -8,7 +8,7 @@ stdout_logfile=/var/log/app/alpha-1.log
|
|
8
8
|
stderr_logfile=/var/log/app/alpha-1.error.log
|
9
9
|
user=app
|
10
10
|
directory=/tmp/app
|
11
|
-
environment=PORT=5000
|
11
|
+
environment=PORT="5000"
|
12
12
|
[program:app-bravo-1]
|
13
13
|
command=./bravo
|
14
14
|
autostart=true
|
@@ -18,7 +18,7 @@ stdout_logfile=/var/log/app/bravo-1.log
|
|
18
18
|
stderr_logfile=/var/log/app/bravo-1.error.log
|
19
19
|
user=app
|
20
20
|
directory=/tmp/app
|
21
|
-
environment=PORT=5100
|
21
|
+
environment=PORT="5100"
|
22
22
|
[program:app-foo_bar-1]
|
23
23
|
command=./foo_bar
|
24
24
|
autostart=true
|
@@ -28,7 +28,7 @@ stdout_logfile=/var/log/app/foo_bar-1.log
|
|
28
28
|
stderr_logfile=/var/log/app/foo_bar-1.error.log
|
29
29
|
user=app
|
30
30
|
directory=/tmp/app
|
31
|
-
environment=PORT=5200
|
31
|
+
environment=PORT="5200"
|
32
32
|
[program:app-foo-bar-1]
|
33
33
|
command=./foo-bar
|
34
34
|
autostart=true
|
@@ -38,7 +38,7 @@ stdout_logfile=/var/log/app/foo-bar-1.log
|
|
38
38
|
stderr_logfile=/var/log/app/foo-bar-1.error.log
|
39
39
|
user=app
|
40
40
|
directory=/tmp/app
|
41
|
-
environment=PORT=5300
|
41
|
+
environment=PORT="5300"
|
42
42
|
|
43
43
|
[group:app]
|
44
44
|
programs=app-alpha-1,app-bravo-1,app-foo_bar-1,app-foo-bar-1
|
@@ -8,7 +8,7 @@ stdout_logfile=/var/log/app/alpha-1.log
|
|
8
8
|
stderr_logfile=/var/log/app/alpha-1.error.log
|
9
9
|
user=app
|
10
10
|
directory=/tmp/app
|
11
|
-
environment=PORT=5000
|
11
|
+
environment=PORT="5000"
|
12
12
|
[program:app-alpha-2]
|
13
13
|
command=./alpha
|
14
14
|
autostart=true
|
@@ -18,7 +18,7 @@ stdout_logfile=/var/log/app/alpha-2.log
|
|
18
18
|
stderr_logfile=/var/log/app/alpha-2.error.log
|
19
19
|
user=app
|
20
20
|
directory=/tmp/app
|
21
|
-
environment=PORT=5001
|
21
|
+
environment=PORT="5001"
|
22
22
|
|
23
23
|
[group:app]
|
24
24
|
programs=app-alpha-1,app-alpha-2
|
metadata
CHANGED
@@ -1,32 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.65.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- David Dollar
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
12
|
+
date: 2014-04-23 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: thor
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
21
|
+
version: 0.19.1
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- -
|
27
|
+
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
29
|
+
version: 0.19.1
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: dotenv
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ~>
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ~>
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -47,7 +52,6 @@ extra_rdoc_files: []
|
|
47
52
|
files:
|
48
53
|
- bin/foreman
|
49
54
|
- bin/foreman-runner
|
50
|
-
- bin/taskman
|
51
55
|
- data/example/error
|
52
56
|
- data/example/log/neverdie.log
|
53
57
|
- data/example/Procfile
|
@@ -150,26 +154,33 @@ files:
|
|
150
154
|
homepage: http://github.com/ddollar/foreman
|
151
155
|
licenses:
|
152
156
|
- MIT
|
153
|
-
metadata: {}
|
154
157
|
post_install_message:
|
155
158
|
rdoc_options: []
|
156
159
|
require_paths:
|
157
160
|
- lib
|
158
161
|
required_ruby_version: !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
159
163
|
requirements:
|
160
|
-
- - '>='
|
164
|
+
- - ! '>='
|
161
165
|
- !ruby/object:Gem::Version
|
162
166
|
version: '0'
|
167
|
+
segments:
|
168
|
+
- 0
|
169
|
+
hash: -58308520584427646
|
163
170
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
|
+
none: false
|
164
172
|
requirements:
|
165
|
-
- - '>='
|
173
|
+
- - ! '>='
|
166
174
|
- !ruby/object:Gem::Version
|
167
175
|
version: '0'
|
176
|
+
segments:
|
177
|
+
- 0
|
178
|
+
hash: -58308520584427646
|
168
179
|
requirements: []
|
169
180
|
rubyforge_project:
|
170
|
-
rubygems_version:
|
181
|
+
rubygems_version: 1.8.23
|
171
182
|
signing_key:
|
172
|
-
specification_version:
|
183
|
+
specification_version: 3
|
173
184
|
summary: Process manager for applications with multiple components
|
174
185
|
test_files: []
|
175
186
|
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: bbb82e88b1e4cc986e7af63cc6d631fa04a3835f
|
4
|
-
data.tar.gz: 628e407c7dc4c6b1c45feae01f0721226015fc77
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 97b7f37dd66b6d5959c68b02f088e1d13f9ca5e0521020e44134d720ad985498eddb3e6694c1718c84263bbfd50e6ec2a6807ad19ae6c2f615a1c278f1b9f925
|
7
|
-
data.tar.gz: a5233b13f6516fd91fbdac8919d97b5c9538e84147a937bc6c9b071f0eed55a09f8fe3016c66d67d1036528a104b0eff04ed4d82fcba32bd800466911a1df013
|