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.
Files changed (2) hide show
  1. data/bin/servicebuilder +16 -5
  2. 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
- exec *YAML.load(DATA.read)
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
- exec *YAML.load(DATA.read)
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('nobody', 'nobody',
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 = %w{chpst -unobody svlogd -tt ./main}
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
- hash: 29
5
- prerelease:
4
+ prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 0
9
- - 1
10
- version: 0.0.1
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-05-23 00:00:00 Z
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.8.24
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.