servicebuilder 0.0.1 → 0.0.2
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/bin/servicebuilder +16 -5
- metadata +7 -12
data/bin/servicebuilder
CHANGED
@@ -22,6 +22,7 @@
|
|
22
22
|
# run: sshd -fg
|
23
23
|
# log: svlogd -tt
|
24
24
|
# logsleep: 5
|
25
|
+
# loguser: nobody
|
25
26
|
#
|
26
27
|
# All "run" scripts and "log" scripts WILL BE PREPENDED WITH AN "exec"!
|
27
28
|
# Your run script MUST RUN IN THE FOREGROUND or you'll create a fork bomb.
|
@@ -37,7 +38,8 @@ require 'fileutils'
|
|
37
38
|
# :stagedir, and :activatedir. Then, s.create! to build it in the stagedir.
|
38
39
|
# s.activate! to symlink it into the activedir.
|
39
40
|
class Service
|
40
|
-
attr_accessor :name, :run, :log, :stagedir, :activatedir, :sleep, :logsleep
|
41
|
+
attr_accessor :name, :run, :log, :stagedir, :activatedir, :sleep, :logsleep,\
|
42
|
+
:loguser
|
41
43
|
|
42
44
|
# Methods to wrap your runscript and logscript around something safe
|
43
45
|
def runscript
|
@@ -46,7 +48,9 @@ class Service
|
|
46
48
|
$stderr.reopen(STDOUT)
|
47
49
|
require 'yaml'
|
48
50
|
sleep #{self.sleep}
|
49
|
-
|
51
|
+
data = YAML.load(DATA.read)
|
52
|
+
run = data.map {|s| s.to_s}
|
53
|
+
exec *run
|
50
54
|
sleep 2
|
51
55
|
__END__
|
52
56
|
#{self.run.to_yaml}
|
@@ -59,7 +63,9 @@ EOF
|
|
59
63
|
#!/usr/bin/ruby
|
60
64
|
require 'yaml'
|
61
65
|
sleep #{self.logsleep}
|
62
|
-
|
66
|
+
data = YAML.load(DATA.read)
|
67
|
+
run = data.map {|s| s.to_s}
|
68
|
+
exec *run
|
63
69
|
sleep 2
|
64
70
|
__END__
|
65
71
|
#{self.log.to_yaml}
|
@@ -84,7 +90,7 @@ EOF
|
|
84
90
|
if not File.directory?(File.join(@stagedir, "log", "main"))
|
85
91
|
puts "Creating directory #{@stagedir}/log/main"
|
86
92
|
Kernel.system("mkdir", "-p", File.join(@stagedir, "log", "main"))
|
87
|
-
FileUtils.chown(
|
93
|
+
FileUtils.chown(self.loguser, self.loguser,
|
88
94
|
File.join(@stagedir, "log", "main"))
|
89
95
|
modified = true
|
90
96
|
end
|
@@ -226,13 +232,17 @@ confdata.each do |k, d|
|
|
226
232
|
if d.has_key?('logsleep') and d['logsleep'].to_i >= 0
|
227
233
|
logsleep = d['logsleep'].to_i
|
228
234
|
end
|
235
|
+
loguser = 'nobody'
|
236
|
+
if(d.has_key?('loguser'))
|
237
|
+
loguser= d['loguser']
|
238
|
+
end
|
229
239
|
if d.member?('log')
|
230
240
|
log = d['log']
|
231
241
|
if log.class != Array
|
232
242
|
raise "Error, bad args passed to log statement"
|
233
243
|
end
|
234
244
|
else
|
235
|
-
log =
|
245
|
+
log = ['chpst',"-u#{loguser}",'svlogd','-tt','./main']
|
236
246
|
end
|
237
247
|
|
238
248
|
s = Service.new
|
@@ -241,6 +251,7 @@ confdata.each do |k, d|
|
|
241
251
|
s.log = log
|
242
252
|
s.sleep = sleep
|
243
253
|
s.logsleep = logsleep
|
254
|
+
s.loguser = loguser
|
244
255
|
s.stagedir = File.join(stagedir, servicename)
|
245
256
|
s.activatedir = File.join(activatedir, servicename)
|
246
257
|
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: servicebuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Erik Bourget
|
@@ -15,17 +14,16 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2012-
|
17
|
+
date: 2012-09-04 00:00:00 -07:00
|
18
|
+
default_executable: servicebuilder
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rdoc
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
-
none: false
|
25
24
|
requirements:
|
26
25
|
- - ">="
|
27
26
|
- !ruby/object:Gem::Version
|
28
|
-
hash: 3
|
29
27
|
segments:
|
30
28
|
- 0
|
31
29
|
version: "0"
|
@@ -44,6 +42,7 @@ files:
|
|
44
42
|
- bin/servicebuilder
|
45
43
|
- README.md
|
46
44
|
- LICENSE.md
|
45
|
+
has_rdoc: true
|
47
46
|
homepage: http://github.com/square/prodeng
|
48
47
|
licenses: []
|
49
48
|
|
@@ -53,20 +52,16 @@ rdoc_options:
|
|
53
52
|
require_paths:
|
54
53
|
- lib
|
55
54
|
required_ruby_version: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
55
|
requirements:
|
58
56
|
- - ">="
|
59
57
|
- !ruby/object:Gem::Version
|
60
|
-
hash: 3
|
61
58
|
segments:
|
62
59
|
- 0
|
63
60
|
version: "0"
|
64
61
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
62
|
requirements:
|
67
63
|
- - ">="
|
68
64
|
- !ruby/object:Gem::Version
|
69
|
-
hash: 23
|
70
65
|
segments:
|
71
66
|
- 1
|
72
67
|
- 3
|
@@ -75,7 +70,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
70
|
requirements: []
|
76
71
|
|
77
72
|
rubyforge_project:
|
78
|
-
rubygems_version: 1.
|
73
|
+
rubygems_version: 1.3.6
|
79
74
|
signing_key:
|
80
75
|
specification_version: 3
|
81
76
|
summary: Tool to build runit services from simple configuration files.
|