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 ADDED
@@ -0,0 +1,4 @@
1
+ foreman_export_runitu
2
+ =====================
3
+
4
+ Foreman exporter to runit, unlike original runit exporter, does it without sudo
@@ -0,0 +1,7 @@
1
+ #!/bin/sh
2
+ set -e
3
+
4
+ LOG=<%= log %>/<%= name %>-<%= num %>
5
+
6
+ test -d "$LOG" || mkdir -p m2750 "$LOG"
7
+ exec svlogd "$LOG"
@@ -0,0 +1,6 @@
1
+ #!/bin/sh
2
+ set -e
3
+
4
+ exec 2>&1
5
+ cd <%= engine.root %>
6
+ exec -e <%= File.join(location, "#{process_directory}/env") %> <%= process.command %>
@@ -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: