foreman-export-initscript 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.
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ *.swp
@@ -0,0 +1 @@
1
+ script: "bundle exec rspec"
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in foreman-export-initscript.gemspec
4
+ gemspec
5
+
6
+ gem "fakefs", git: "git://github.com/defunkt/fakefs.git"
@@ -0,0 +1,13 @@
1
+ # Initscript exporter for foreman
2
+
3
+ ### Using in your application
4
+
5
+ ```ruby
6
+ gem 'foreman-export-initscript', :git => 'git://github.com/lzgo/foreman-export-initscript.git'
7
+ ```
8
+
9
+ then `bundle exec foreman export initscript /etc/init.d`
10
+
11
+ ### Credits
12
+
13
+ Shamelessly inspired from foreman-export-nature: https://github.com/nature/foreman-export-nature
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,133 @@
1
+ #! /bin/sh
2
+ ### BEGIN INIT INFO
3
+ # Provides: <%= app %>
4
+ # Required-Start: $remote_fs $syslog
5
+ # Required-Stop: $remote_fs $syslog
6
+ # Default-Start: 2 3 4 5
7
+ # Default-Stop: 0 1 6
8
+ # Short-Description: Generated initscript for <%= app %>
9
+ # Description: This file starts <%= app %>. It should be placed in /etc/init.d
10
+ ### END INIT INFO
11
+
12
+ # Author: Foreman generator
13
+ #
14
+
15
+ # Do NOT "set -e"
16
+
17
+ # PATH should only include /usr/* if it runs after the mountnfs.sh script
18
+ PATH=/sbin:/usr/sbin:/bin:/usr/bin
19
+ DESC="Runs <%= app %>"
20
+ NAME=<%= app %>
21
+ PIDDIR=/var/run/$NAME
22
+ SCRIPTNAME=/etc/init.d/$NAME
23
+ USERNAME=<%= user %>
24
+
25
+ # Read configuration variable file if it is present
26
+ [ -r /etc/default/$NAME ] && . /etc/default/$NAME
27
+
28
+ # Load the VERBOSE setting and other rcS variables
29
+ [ -r /lib/init/vars.sh ] && . /lib/init/vars.sh
30
+
31
+ # Define LSB log_* functions.
32
+ # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
33
+ # and status_of_proc is working.
34
+ [ -r /lib/lsb/init-functions ] &&. /lib/lsb/init-functions
35
+
36
+ #
37
+ # Function that starts the daemon/service
38
+ #
39
+ do_start()
40
+ {
41
+ mkdir -p $PIDDIR
42
+ mkdir -p <%= log %>
43
+ chown $USERNAME: <%= log %>
44
+ # START APPLICATION: <%= app %>
45
+ <% engine.each_process do |name, process| %>
46
+ # START PROCESS: <%= name %>
47
+ <% 1.upto(engine.formation[name]) do |num| %>
48
+ # START CONCURRENT: <%= num %>
49
+ # Start: <%= app %>.<%= name %>.<%= num %>
50
+ # Create $PIDDIR/<%= name %>.<%= num %>.pid
51
+ su - $USERNAME -c 'cd <%= engine.root %>; export PORT=<%= engine.port_for(process, num) %>;<% engine.environment.each_pair do |var,env| %> export <%= var.upcase %>=<%= env %>; <% end %> <%= process.command %> >> <%= log %>/<%=name%>-<%=num%>.log 2>&1 & echo $!' > $PIDDIR/<%= name %>.<%= num %>.pid
52
+ <% end %>
53
+ <% end %>
54
+
55
+ }
56
+
57
+ #
58
+ # Function that stops the daemon/service
59
+ #
60
+ do_stop()
61
+ {
62
+ # STOP APPLICATION: <%= app %>
63
+ <% engine.each_process do |name, process| %>
64
+ # STOP PROCESS: <%= name %>
65
+ <% 1.upto(engine.formation[name]) do |num| %>
66
+ # STOP CONCURRENT: <%= num %>
67
+ # Stop: <%= app %>.<%= name %>.<%= num %>
68
+ kill `cat $PIDDIR/<%= name %>.<%= num %>.pid`
69
+ rm $PIDDIR/<%= name %>.<%= num %>.pid
70
+ <% end %>
71
+ <% end %>
72
+ rmdir $PIDDIR
73
+ }
74
+
75
+ case "$1" in
76
+ start)
77
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
78
+ do_start
79
+ case "$?" in
80
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
81
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
82
+ esac
83
+ ;;
84
+ stop)
85
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
86
+ do_stop
87
+ case "$?" in
88
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
89
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
90
+ esac
91
+ ;;
92
+ status)
93
+ status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
94
+ ;;
95
+ #reload|force-reload)
96
+ #
97
+ # If do_reload() is not implemented then leave this commented out
98
+ # and leave 'force-reload' as an alias for 'restart'.
99
+ #
100
+ #log_daemon_msg "Reloading $DESC" "$NAME"
101
+ #do_reload
102
+ #log_end_msg $?
103
+ #;;
104
+ restart|force-reload)
105
+ #
106
+ # If the "reload" option is implemented then remove the
107
+ # 'force-reload' alias
108
+ #
109
+ log_daemon_msg "Restarting $DESC" "$NAME"
110
+ do_stop
111
+ case "$?" in
112
+ 0|1)
113
+ do_start
114
+ case "$?" in
115
+ 0) log_end_msg 0 ;;
116
+ 1) log_end_msg 1 ;; # Old process is still running
117
+ *) log_end_msg 1 ;; # Failed to start
118
+ esac
119
+ ;;
120
+ *)
121
+ # Failed to stop
122
+ log_end_msg 1
123
+ ;;
124
+ esac
125
+ ;;
126
+ *)
127
+ #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
128
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
129
+ exit 3
130
+ ;;
131
+ esac
132
+
133
+ :
@@ -0,0 +1,26 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "foreman-export-initscript"
6
+ s.version = "0.0.1"
7
+ s.authors = ["Emile Cantin"]
8
+ s.email = ["emile.cantin@gmail.com"]
9
+ s.homepage = ""
10
+ s.summary = %q{Export foreman Procfile to a init script}
11
+ s.description = %q{Export foreman Procfile to a init script}
12
+
13
+ s.rubyforge_project = "foreman-export-initscript"
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+
20
+ # specify any dependencies here; for example:
21
+ s.add_development_dependency "rspec"
22
+ # s.add_development_dependency "fakefs", git: "git://github.com/defunkt/fakefs.git"
23
+ s.add_development_dependency "rr"
24
+ s.add_dependency "foreman"
25
+ # s.add_runtime_dependency "rest-client"
26
+ end
@@ -0,0 +1,2 @@
1
+ require "foreman/export/initscript"
2
+
@@ -0,0 +1,32 @@
1
+ require "erb"
2
+ require "foreman/export"
3
+
4
+ class Foreman::Export::Initscript < Foreman::Export::Base
5
+
6
+ def export
7
+
8
+ #super
9
+ error("Must specify a location") unless location
10
+ FileUtils.mkdir_p(location) rescue error("Could not create: #{location}")
11
+ FileUtils.mkdir_p(log) rescue error("Could not create: #{log}")
12
+ # begin
13
+ # FileUtils.chown(user, nil, log)
14
+ # rescue Exception => e
15
+ # error("Could not chown #{log} to #{user} - #{e.message}")
16
+ # end
17
+
18
+ name = "initscript/master.erb"
19
+ name_without_first = name.split("/")[1..-1].join("/")
20
+ matchers = []
21
+ matchers << File.join(options[:template], name_without_first) if options[:template]
22
+ matchers << File.expand_path("~/.foreman/templates/#{name}")
23
+ matchers << File.expand_path("../../../../data/export/#{name}", __FILE__)
24
+ path = File.read(matchers.detect { |m| File.exists?(m) })
25
+ compiled = ERB.new(path).result(binding)
26
+ write_file "#{app}", compiled
27
+ # path = export_template name
28
+ # write_template "initscript/master.erb", "#{app}", binding
29
+ end
30
+
31
+ end
32
+
@@ -0,0 +1,30 @@
1
+ require "spec_helper"
2
+ require "foreman/engine"
3
+ require "foreman/export/initscript"
4
+ require "tmpdir"
5
+
6
+ describe Foreman::Export::Initscript, :fakefs do
7
+ let(:procfile) { FileUtils.mkdir_p("/tmp/app"); write_procfile("/tmp/app/Procfile") }
8
+ let(:formation) { nil }
9
+ let(:engine) { Foreman::Engine.new(:formation => formation).load_procfile(procfile) }
10
+ let(:options) { Hash.new }
11
+ let(:initscript) { FileUtils.mkdir_p("/tmp/init"); Foreman::Export::Initscript.new("/tmp/init", engine, options) }
12
+
13
+ before(:each) { load_export_templates_into_fakefs("initscript") }
14
+ before(:each) { stub(initscript).say }
15
+
16
+ it "exports to the filesystem" do
17
+ initscript.export
18
+ normalize_space(File.read("/tmp/init/app")).should == normalize_space(example_export_file("initscript/app"))
19
+ end
20
+
21
+ context "with concurrency" do
22
+ let(:options) { Hash[:concurrency => "alpha=2"] }
23
+
24
+ it "exports to the filesystem with concurrency" do
25
+ initscript.export
26
+ normalize_space(File.read("/tmp/init/app")).should == normalize_space(example_export_file("initscript/app-concurrency"))
27
+ end
28
+ end
29
+
30
+ end
@@ -0,0 +1,149 @@
1
+ #! /bin/sh
2
+ ### BEGIN INIT INFO
3
+ # Provides: app
4
+ # Required-Start: $remote_fs $syslog
5
+ # Required-Stop: $remote_fs $syslog
6
+ # Default-Start: 2 3 4 5
7
+ # Default-Stop: 0 1 6
8
+ # Short-Description: Generated initscript for app
9
+ # Description: This file starts app. It should be placed in /etc/init.d
10
+ ### END INIT INFO
11
+
12
+ # Author: Foreman generator
13
+ #
14
+
15
+ # Do NOT "set -e"
16
+
17
+ # PATH should only include /usr/* if it runs after the mountnfs.sh script
18
+ PATH=/sbin:/usr/sbin:/bin:/usr/bin
19
+ DESC="Runs app"
20
+ NAME=app
21
+ PIDDIR=/var/run/$NAME
22
+ SCRIPTNAME=/etc/init.d/$NAME
23
+ USERNAME=app
24
+
25
+ # Read configuration variable file if it is present
26
+ [ -r /etc/default/$NAME ] && . /etc/default/$NAME
27
+
28
+ # Load the VERBOSE setting and other rcS variables
29
+ [ -r /lib/init/vars.sh ] && . /lib/init/vars.sh
30
+
31
+ # Define LSB log_* functions.
32
+ # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
33
+ # and status_of_proc is working.
34
+ [ -r /lib/lsb/init-functions ] &&. /lib/lsb/init-functions
35
+
36
+ #
37
+ # Function that starts the daemon/service
38
+ #
39
+ do_start()
40
+ {
41
+ mkdir -p $PIDDIR
42
+ mkdir -p /var/log/app
43
+ chown $USERNAME: /var/log/app
44
+ # START APPLICATION: app
45
+
46
+ # START PROCESS: alpha
47
+
48
+ # START CONCURRENT: 1
49
+ # Start: app.alpha.1
50
+ # Create $PIDDIR/alpha.1.pid
51
+ su - $USERNAME -c 'cd /tmp/app; export PORT=5000; ./alpha >> /var/log/app/alpha-1.log 2>&1 & echo $!' > $PIDDIR/alpha.1.pid
52
+
53
+
54
+ # START PROCESS: bravo
55
+
56
+ # START CONCURRENT: 1
57
+ # Start: app.bravo.1
58
+ # Create $PIDDIR/bravo.1.pid
59
+ su - $USERNAME -c 'cd /tmp/app; export PORT=5100; ./bravo >> /var/log/app/bravo-1.log 2>&1 & echo $!' > $PIDDIR/bravo.1.pid
60
+
61
+
62
+
63
+ }
64
+
65
+ #
66
+ # Function that stops the daemon/service
67
+ #
68
+ do_stop()
69
+ {
70
+ # STOP APPLICATION: app
71
+
72
+ # STOP PROCESS: alpha
73
+
74
+ # STOP CONCURRENT: 1
75
+ # Stop: app.alpha.1
76
+ kill `cat $PIDDIR/alpha.1.pid`
77
+ rm $PIDDIR/alpha.1.pid
78
+
79
+
80
+ # STOP PROCESS: bravo
81
+
82
+ # STOP CONCURRENT: 1
83
+ # Stop: app.bravo.1
84
+ kill `cat $PIDDIR/bravo.1.pid`
85
+ rm $PIDDIR/bravo.1.pid
86
+
87
+
88
+ rmdir $PIDDIR
89
+ }
90
+
91
+ case "$1" in
92
+ start)
93
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
94
+ do_start
95
+ case "$?" in
96
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
97
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
98
+ esac
99
+ ;;
100
+ stop)
101
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
102
+ do_stop
103
+ case "$?" in
104
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
105
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
106
+ esac
107
+ ;;
108
+ status)
109
+ status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
110
+ ;;
111
+ #reload|force-reload)
112
+ #
113
+ # If do_reload() is not implemented then leave this commented out
114
+ # and leave 'force-reload' as an alias for 'restart'.
115
+ #
116
+ #log_daemon_msg "Reloading $DESC" "$NAME"
117
+ #do_reload
118
+ #log_end_msg $?
119
+ #;;
120
+ restart|force-reload)
121
+ #
122
+ # If the "reload" option is implemented then remove the
123
+ # 'force-reload' alias
124
+ #
125
+ log_daemon_msg "Restarting $DESC" "$NAME"
126
+ do_stop
127
+ case "$?" in
128
+ 0|1)
129
+ do_start
130
+ case "$?" in
131
+ 0) log_end_msg 0 ;;
132
+ 1) log_end_msg 1 ;; # Old process is still running
133
+ *) log_end_msg 1 ;; # Failed to start
134
+ esac
135
+ ;;
136
+ *)
137
+ # Failed to stop
138
+ log_end_msg 1
139
+ ;;
140
+ esac
141
+ ;;
142
+ *)
143
+ #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
144
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
145
+ exit 3
146
+ ;;
147
+ esac
148
+
149
+ :
@@ -0,0 +1,148 @@
1
+ #! /bin/sh
2
+ ### BEGIN INIT INFO
3
+ # Provides: app
4
+ # Required-Start: $remote_fs $syslog
5
+ # Required-Stop: $remote_fs $syslog
6
+ # Default-Start: 2 3 4 5
7
+ # Default-Stop: 0 1 6
8
+ # Short-Description: Generated initscript for app
9
+ # Description: This file starts app. It should be placed in /etc/init.d
10
+ ### END INIT INFO
11
+
12
+ # Author: Foreman generator
13
+ #
14
+
15
+ # Do NOT "set -e"
16
+
17
+ # PATH should only include /usr/* if it runs after the mountnfs.sh script
18
+ PATH=/sbin:/usr/sbin:/bin:/usr/bin
19
+ DESC="Runs app"
20
+ NAME=app
21
+ PIDDIR=/var/run/$NAME
22
+ SCRIPTNAME=/etc/init.d/$NAME
23
+ USERNAME=app
24
+
25
+ # Read configuration variable file if it is present
26
+ [ -r /etc/default/$NAME ] && . /etc/default/$NAME
27
+
28
+ # Load the VERBOSE setting and other rcS variables
29
+ [ -r /lib/init/vars.sh ] && . /lib/init/vars.sh
30
+
31
+ # Define LSB log_* functions.
32
+ # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
33
+ # and status_of_proc is working.
34
+ [ -r /lib/lsb/init-functions ] &&. /lib/lsb/init-functions
35
+
36
+ #
37
+ # Function that starts the daemon/service
38
+ #
39
+ do_start()
40
+ {
41
+ mkdir -p $PIDDIR
42
+ mkdir -p /var/log/app
43
+ chown $USERNAME: /var/log/app
44
+ # START APPLICATION: app
45
+
46
+ # START PROCESS: alpha
47
+
48
+ # START CONCURRENT: 1
49
+ # Start: app.alpha.1
50
+ # Create $PIDDIR/alpha.1.pid
51
+ su - $USERNAME -c 'cd /tmp/app; export PORT=5000; ./alpha >> /var/log/app/alpha-1.log 2>&1 & echo $!' > $PIDDIR/alpha.1.pid
52
+
53
+
54
+ # START CONCURRENT: 2
55
+ # Start: app.alpha.2
56
+ # Create $PIDDIR/alpha.2.pid
57
+ su - $USERNAME -c 'cd /tmp/app; export PORT=5001; ./alpha >> /var/log/app/alpha-2.log 2>&1 & echo $!' > $PIDDIR/alpha.2.pid
58
+
59
+
60
+ # START PROCESS: bravo
61
+
62
+ }
63
+
64
+ #
65
+ # Function that stops the daemon/service
66
+ #
67
+ do_stop()
68
+ {
69
+ # STOP APPLICATION: app
70
+
71
+ # STOP PROCESS: alpha
72
+
73
+ # STOP CONCURRENT: 1
74
+ # Stop: app.alpha.1
75
+ kill `cat $PIDDIR/alpha.1.pid`
76
+ rm $PIDDIR/alpha.1.pid
77
+
78
+
79
+ # STOP CONCURRENT: 2
80
+ # Stop: app.alpha.2
81
+ kill `cat $PIDDIR/alpha.2.pid`
82
+ rm $PIDDIR/alpha.2.pid
83
+
84
+
85
+ # STOP PROCESS: bravo
86
+
87
+ rmdir $PIDDIR
88
+ }
89
+
90
+ case "$1" in
91
+ start)
92
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
93
+ do_start
94
+ case "$?" in
95
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
96
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
97
+ esac
98
+ ;;
99
+ stop)
100
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
101
+ do_stop
102
+ case "$?" in
103
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
104
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
105
+ esac
106
+ ;;
107
+ status)
108
+ status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
109
+ ;;
110
+ #reload|force-reload)
111
+ #
112
+ # If do_reload() is not implemented then leave this commented out
113
+ # and leave 'force-reload' as an alias for 'restart'.
114
+ #
115
+ #log_daemon_msg "Reloading $DESC" "$NAME"
116
+ #do_reload
117
+ #log_end_msg $?
118
+ #;;
119
+ restart|force-reload)
120
+ #
121
+ # If the "reload" option is implemented then remove the
122
+ # 'force-reload' alias
123
+ #
124
+ log_daemon_msg "Restarting $DESC" "$NAME"
125
+ do_stop
126
+ case "$?" in
127
+ 0|1)
128
+ do_start
129
+ case "$?" in
130
+ 0) log_end_msg 0 ;;
131
+ 1) log_end_msg 1 ;; # Old process is still running
132
+ *) log_end_msg 1 ;; # Failed to start
133
+ esac
134
+ ;;
135
+ *)
136
+ # Failed to stop
137
+ log_end_msg 1
138
+ ;;
139
+ esac
140
+ ;;
141
+ *)
142
+ #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
143
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
144
+ exit 3
145
+ ;;
146
+ esac
147
+
148
+ :
@@ -0,0 +1,52 @@
1
+ require "rspec"
2
+ require "fakefs/safe"
3
+ require "fakefs/spec_helpers"
4
+
5
+ require 'foreman-export-initscript'
6
+
7
+ def resource_path(filename)
8
+ File.expand_path("../resources/#{filename}", __FILE__)
9
+ end
10
+
11
+ def write_procfile(procfile="Procfile", alpha_env="")
12
+ File.open(procfile, "w") do |file|
13
+ file.puts "alpha: ./alpha" + " #{alpha_env}".rstrip
14
+ file.puts "\n"
15
+ file.puts "bravo:\t./bravo"
16
+ end
17
+ File.expand_path(procfile)
18
+ end
19
+
20
+ def load_export_templates_into_fakefs(type)
21
+ FakeFS.deactivate!
22
+ files = Dir[File.expand_path("../../data/export/#{type}/**", __FILE__)].inject({}) do |hash, file|
23
+ hash.update(file => File.read(file))
24
+ end
25
+ FakeFS.activate!
26
+ files.each do |filename, contents|
27
+ #require "debug"
28
+ FileUtils.mkdir_p RealFile.dirname filename
29
+ File.open(filename, "w") do |f|
30
+ f.puts contents
31
+ end
32
+ end
33
+ end
34
+
35
+ def example_export_file(filename)
36
+ FakeFS.deactivate!
37
+ data = File.read(File.expand_path(resource_path("export/#{filename}"), __FILE__))
38
+ FakeFS.activate!
39
+ data
40
+ end
41
+
42
+ def normalize_space(s)
43
+ s.gsub(/\n[\n\s]*/, "\n")
44
+ end
45
+
46
+ RSpec.configure do |config|
47
+ config.treat_symbols_as_metadata_keys_with_true_values = true
48
+ config.color_enabled = true
49
+ config.order = 'rand'
50
+ config.include FakeFS::SpecHelpers, :fakefs
51
+ config.mock_with :rr
52
+ end
metadata ADDED
@@ -0,0 +1,111 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: foreman-export-initscript
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Emile Cantin
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
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
+ - !ruby/object:Gem::Dependency
31
+ name: rr
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: foreman
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: Export foreman Procfile to a init script
63
+ email:
64
+ - emile.cantin@gmail.com
65
+ executables: []
66
+ extensions: []
67
+ extra_rdoc_files: []
68
+ files:
69
+ - .gitignore
70
+ - .travis.yml
71
+ - Gemfile
72
+ - README.md
73
+ - Rakefile
74
+ - data/export/initscript/master.erb
75
+ - foreman-export-initscript.gemspec
76
+ - lib/foreman-export-initscript.rb
77
+ - lib/foreman-export-initscript/version.rb
78
+ - lib/foreman/export/initscript.rb
79
+ - spec/foreman/export/initscript_spec.rb
80
+ - spec/resources/export/initscript/app
81
+ - spec/resources/export/initscript/app-concurrency
82
+ - spec/spec_helper.rb
83
+ homepage: ''
84
+ licenses: []
85
+ post_install_message:
86
+ rdoc_options: []
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ! '>='
99
+ - !ruby/object:Gem::Version
100
+ version: '0'
101
+ requirements: []
102
+ rubyforge_project: foreman-export-initscript
103
+ rubygems_version: 1.8.23
104
+ signing_key:
105
+ specification_version: 3
106
+ summary: Export foreman Procfile to a init script
107
+ test_files:
108
+ - spec/foreman/export/initscript_spec.rb
109
+ - spec/resources/export/initscript/app
110
+ - spec/resources/export/initscript/app-concurrency
111
+ - spec/spec_helper.rb