gluez 0.4.5 → 0.4.6

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.
@@ -1,6 +1,8 @@
1
1
  resource :disable do
2
2
  ready!
3
3
 
4
+ self.as_user "root"
5
+
4
6
  steps do |step|
5
7
  step.checks << "\\$(update-rc.d -n -f #{self.name} remove | grep '/etc/rc' | wc -l) -eq 0"
6
8
  step.code = "/usr/sbin/update-rc.d -f #{self.name} remove"
@@ -1,6 +1,8 @@
1
1
  resource :enable do
2
2
  ready!
3
3
 
4
+ self.as_user "root"
5
+
4
6
  steps do |step|
5
7
  step.checks << "\\$(update-rc.d -n -f #{self.name} remove | grep '/etc/rc' | wc -l) -gt 0"
6
8
  step.code = "/usr/sbin/update-rc.d #{self.name} defaults"
@@ -2,6 +2,7 @@ require 'base64'
2
2
 
3
3
  resource :initd do
4
4
  optional :daemon_opts, :default => ""
5
+ optional :path, :default => "/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
5
6
  mandatory :daemon
6
7
 
7
8
  ready!
@@ -21,9 +22,9 @@ resource :initd do
21
22
  # Description: starts #{self.name}
22
23
  ### END INIT INFO
23
24
 
24
- PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
25
+ PATH=#{self.path}
25
26
  DAEMON=#{self.daemon}
26
- DAEMON_OPTS=#{self.daemon_opts}
27
+ DAEMON_OPTS="#{self.daemon_opts}"
27
28
  NAME=#{self.name}
28
29
  DESC=$NAME
29
30
 
@@ -41,26 +42,26 @@ resource :initd do
41
42
  case "$1" in
42
43
  start)
43
44
  echo -n "Starting $DESC: "
44
- start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
45
+ start-stop-daemon --start --chuid #{self.user} --quiet --pidfile /var/run/$NAME.pid --exec su -l #{self.user} -c '$DAEMON' -- $DAEMON_OPTS || true
45
46
  echo "$NAME."
46
47
  ;;
47
48
 
48
49
  stop)
49
50
  echo -n "Stopping $DESC: "
50
- start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true
51
+ start-stop-daemon --stop --chuid #{self.user} --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true
51
52
  echo "$NAME."
52
53
  ;;
53
54
 
54
55
  restart|force-reload)
55
56
  echo -n "Restarting $DESC: "
56
- start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true
57
+ start-stop-daemon --stop --chuid #{self.user} --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true
57
58
  sleep 1
58
- start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
59
+ start-stop-daemon --start --chuid #{self.user} --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
59
60
  echo "$NAME."
60
61
  ;;
61
62
  reload)
62
63
  echo -n "Reloading $DESC configuration: "
63
- start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true
64
+ start-stop-daemon --stop --chuid #{self.user} --signal HUP --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true
64
65
  echo "$NAME."
65
66
  ;;
66
67
 
@@ -1,5 +1,8 @@
1
1
  resource :restart do
2
2
  ready!
3
+
4
+ self.as_user "root"
5
+
3
6
  steps do |step|
4
7
  step.code = "service #{self.name} restart"
5
8
  end
@@ -1,6 +1,8 @@
1
1
  resource :start do
2
2
  ready!
3
3
 
4
+ self.as_user "root"
5
+
4
6
  setup = "service --status-all 1>/tmp/gluez.tmp 2>&1"
5
7
  steps do |step|
6
8
  step.checks << %Q("\\$(grep #{self.name} /tmp/gluez.tmp | wc -l)" = "1")
@@ -1,6 +1,8 @@
1
1
  resource :stop do
2
2
  ready!
3
3
 
4
+ self.as_user "root"
5
+
4
6
  setup = "service --status-all 1>/tmp/gluez.tmp 2>&1"
5
7
  steps do |step|
6
8
  step.checks << %Q("\\$(grep #{self.name} /tmp/gluez.tmp | wc -l)" = "1")
@@ -0,0 +1,46 @@
1
+ require 'base64'
2
+
3
+ resource :upstart do
4
+ optional :start_on, :default => "runlevel [2]"
5
+ optional :stop_on, :default => "runlevel [016]"
6
+ optional :fork, :default => false
7
+ mandatory :code
8
+
9
+ ready!
10
+
11
+ self.as_user "root"
12
+
13
+ script = <<-EOF
14
+ description "#{self.name}"
15
+
16
+ start on #{self.start_on}
17
+ stop on #{self.stop_on}
18
+
19
+ console owner
20
+
21
+ #{self.fork ? 'expect fork' : ''}
22
+ respawn
23
+
24
+ exec #{self.code}
25
+ EOF
26
+
27
+ script64 = Base64.encode64(script.multiline_strip)
28
+
29
+ setup "cat >~/.gluez_transfer <<\\DATA
30
+ #{script64.strip}
31
+ DATA"
32
+
33
+ steps do |step|
34
+ step.checks << "-f /etc/init/#{self.name}.conf"
35
+ step.code = "touch /etc/init/#{self.name}.conf"
36
+ end
37
+ steps do |step|
38
+ step.checks << %Q("\\$(cat ~/.gluez_transfer | base64 -i -d - | md5sum - | awk '{print \\$1}')" = "\\$(md5sum /etc/init/#{self.name}.conf | awk '{print \\$1}')")
39
+ step.code = "cat ~/.gluez_transfer | base64 -i -d - > /etc/init/#{self.name}.conf"
40
+ end
41
+ steps do |step|
42
+ step.checks << "-L /etc/init.d/#{self.name}"
43
+ step.code = "ln -s /lib/init/upstart-job /etc/init.d/#{self.name}"
44
+ end
45
+
46
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gluez
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.5
4
+ version: 0.4.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -41,6 +41,7 @@ files:
41
41
  - lib/gluez/resources/substitute.rb
42
42
  - lib/gluez/resources/transfer.rb
43
43
  - lib/gluez/resources/umount.rb
44
+ - lib/gluez/resources/upstart.rb
44
45
  - lib/gluez/string.rb
45
46
  - lib/gluez/templates/profile.erb
46
47
  - lib/gluez.rb