foreman_export_runitu 0.0.1
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/README.md +4 -0
- data/data/export/runitu/log/run.erb +7 -0
- data/data/export/runitu/run.erb +6 -0
- data/lib/foreman/export/runitu.rb +49 -0
- metadata +67 -0
data/README.md
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require "erb"
|
2
|
+
require "foreman/export"
|
3
|
+
|
4
|
+
class Foreman::Export::Runitu < Foreman::Export::Base
|
5
|
+
|
6
|
+
@template_root = Pathname.new(File.dirname(__FILE__)).join('../../../data/templates')
|
7
|
+
|
8
|
+
class << self
|
9
|
+
attr_reader :template_root
|
10
|
+
end
|
11
|
+
|
12
|
+
ENV_VARIABLE_REGEX = /([a-zA-Z_]+[a-zA-Z0-9_]*)=(\S+)/
|
13
|
+
|
14
|
+
def export_from_base
|
15
|
+
error("Must specify a location") unless location
|
16
|
+
FileUtils.mkdir_p(location) rescue error("Could not create: #{location}")
|
17
|
+
FileUtils.mkdir_p(log) rescue error("Could not create: #{log}")
|
18
|
+
#FileUtils.chown(user, nil, log) rescue error("Could not chown #{log} to #{user}")
|
19
|
+
end
|
20
|
+
|
21
|
+
def export
|
22
|
+
template_root = Pathname.new(File.dirname(__FILE__)).join('../../../data/export/runitu').to_s
|
23
|
+
|
24
|
+
engine.each_process do |name, process|
|
25
|
+
1.upto(engine.formation[name]) do |num|
|
26
|
+
process_directory = "#{app}-#{name}-#{num}"
|
27
|
+
|
28
|
+
create_directory process_directory
|
29
|
+
create_directory "#{process_directory}/env"
|
30
|
+
create_directory "#{process_directory}/log"
|
31
|
+
|
32
|
+
write_template "#{template_root}/run.erb", "#{process_directory}/run", binding
|
33
|
+
chmod 0755, "#{process_directory}/run"
|
34
|
+
|
35
|
+
port = engine.port_for(process, num)
|
36
|
+
engine.env.merge("PORT" => port.to_s).each do |key, value|
|
37
|
+
write_file "#{process_directory}/env/#{key}", value
|
38
|
+
end
|
39
|
+
|
40
|
+
write_template "#{template_root}/log/run.erb", "#{process_directory}/log/run", binding
|
41
|
+
chmod 0755, "#{process_directory}/log/run"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def export_template(name, file = nil, template_root = nil)
|
47
|
+
File.read(name)
|
48
|
+
end
|
49
|
+
end
|
metadata
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: foreman_export_runitu
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Dmitry Galisnky
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-11-19 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: foreman
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
description: Foreman exporter to runit, unlike original runit exporter, does it without
|
31
|
+
sudo
|
32
|
+
email: dima.exe@gmail.com
|
33
|
+
executables: []
|
34
|
+
extensions: []
|
35
|
+
extra_rdoc_files: []
|
36
|
+
files:
|
37
|
+
- data/export/runitu/log/run.erb
|
38
|
+
- data/export/runitu/run.erb
|
39
|
+
- lib/foreman/export/runitu.rb
|
40
|
+
- README.md
|
41
|
+
homepage: http://github.com/dima-exe/foreman_export_runitu
|
42
|
+
licenses: []
|
43
|
+
post_install_message:
|
44
|
+
rdoc_options: []
|
45
|
+
require_paths:
|
46
|
+
- lib
|
47
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
48
|
+
none: false
|
49
|
+
requirements:
|
50
|
+
- - ! '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ! '>='
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
version: '0'
|
59
|
+
requirements: []
|
60
|
+
rubyforge_project:
|
61
|
+
rubygems_version: 1.8.23
|
62
|
+
signing_key:
|
63
|
+
specification_version: 3
|
64
|
+
summary: Foreman exporter to runit, unlike original runit exporter, does it without
|
65
|
+
sudo
|
66
|
+
test_files: []
|
67
|
+
has_rdoc:
|