gluez 0.4.4 → 0.4.5

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.
@@ -26,6 +26,7 @@ module Gluez
26
26
 
27
27
  # A chunk of code which will be executed before any other code defined as steps
28
28
  attr_accessor :setup
29
+ attr_accessor :clean
29
30
 
30
31
  attr_reader :subscriptions
31
32
 
@@ -47,6 +48,7 @@ module Gluez
47
48
  self.optional :lazy, :default => false
48
49
 
49
50
  self.accessor :setup
51
+ self.accessor :clean
50
52
  end
51
53
 
52
54
  def as_user(user)
@@ -140,6 +142,11 @@ module Gluez
140
142
  generate_success_or_failure(g, "echo \"[up2date] - #{fun}\"") do
141
143
  g << "echo \"[not up2date] - #{fun}\""
142
144
 
145
+ if self.clean
146
+ g << "echo \"[clean] - #{fun}\""
147
+ g << "su -l #{user} -c \"#{self.clean}\""
148
+ end
149
+
143
150
  unless simulate
144
151
  y = @steps.length
145
152
  if y > 1
@@ -1,6 +1,7 @@
1
1
  resource :bash do
2
2
  mandatory :code
3
3
  mandatory :not_if
4
+ optional :clean
4
5
 
5
6
  ready!
6
7
 
@@ -1,5 +1,6 @@
1
1
  resource :bash_once do
2
2
  mandatory :code
3
+ optional :clean
3
4
 
4
5
  ready!
5
6
 
@@ -0,0 +1,94 @@
1
+ require 'base64'
2
+
3
+ resource :initd do
4
+ optional :daemon_opts, :default => ""
5
+ mandatory :daemon
6
+
7
+ ready!
8
+
9
+ self.as_user "root"
10
+
11
+ script = <<-EOF
12
+ #!/bin/sh
13
+
14
+ ### BEGIN INIT INFO
15
+ # Provides: #{self.name}
16
+ # Required-Start: $local_fs $remote_fs $network $syslog
17
+ # Required-Stop: $local_fs $remote_fs $network $syslog
18
+ # Default-Start: 2 3 4 5
19
+ # Default-Stop: 0 1 6
20
+ # Short-Description: starts #{self.name}
21
+ # Description: starts #{self.name}
22
+ ### END INIT INFO
23
+
24
+ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
25
+ DAEMON=#{self.daemon}
26
+ DAEMON_OPTS=#{self.daemon_opts}
27
+ NAME=#{self.name}
28
+ DESC=$NAME
29
+
30
+ # Include defaults if available
31
+ if [ -f /etc/default/#{self.name} ]; then
32
+ . /etc/default/#{self.name}
33
+ fi
34
+
35
+ test -x $DAEMON || exit 0
36
+
37
+ set -e
38
+
39
+ . /lib/lsb/init-functions
40
+
41
+ case "$1" in
42
+ start)
43
+ echo -n "Starting $DESC: "
44
+ start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
45
+ echo "$NAME."
46
+ ;;
47
+
48
+ stop)
49
+ echo -n "Stopping $DESC: "
50
+ start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true
51
+ echo "$NAME."
52
+ ;;
53
+
54
+ restart|force-reload)
55
+ echo -n "Restarting $DESC: "
56
+ start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true
57
+ sleep 1
58
+ start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS || true
59
+ echo "$NAME."
60
+ ;;
61
+ reload)
62
+ echo -n "Reloading $DESC configuration: "
63
+ start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid --exec $DAEMON || true
64
+ echo "$NAME."
65
+ ;;
66
+
67
+ status)
68
+ status_of_proc -p /var/run/$NAME.pid "$DAEMON" $NAME && exit 0 || exit $?
69
+ ;;
70
+ *)
71
+ echo "Usage: $NAME {start|stop|restart|reload|force-reload|status}" >&2
72
+ exit 1
73
+ ;;
74
+ esac
75
+
76
+ exit 0
77
+ EOF
78
+
79
+ script64 = Base64.encode64(script.multiline_strip)
80
+
81
+ setup "cat >~/.gluez_transfer <<\\DATA
82
+ #{script64.strip}
83
+ DATA"
84
+
85
+ steps do |step|
86
+ step.checks << "-f /etc/init.d/#{self.name}"
87
+ step.code = "touch /etc/init.d/#{self.name}"
88
+ end
89
+ steps do |step|
90
+ step.checks << %Q("\\$(cat ~/.gluez_transfer | base64 -i -d - | md5sum - | awk '{print \\$1}')" = "\\$(md5sum /etc/init.d/#{self.name} | awk '{print \\$1}')")
91
+ step.code = "chmod +x /etc/init.d/#{self.name} && cat ~/.gluez_transfer | base64 -i -d - > /etc/init.d/#{self.name}"
92
+ end
93
+
94
+ end
@@ -0,0 +1,13 @@
1
+ resource :substitute do
2
+ mandatory :entries
3
+
4
+ ready!
5
+
6
+ self.entries.each do |entry|
7
+ pattern, replacement = entry
8
+ steps do |step|
9
+ step.checks << %Q("\\$(cat #{self.name} | md5sum - | awk '{print \\$1}')" = "\\$(cat #{self.name} | sed 's/#{pattern}/#{replacement}/g' | md5sum - | awk '{print \\$1}')")
10
+ step.code = "sed 's/#{pattern}/#{replacement}/g' -i #{self.name}"
11
+ end
12
+ end
13
+ 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.4
4
+ version: 0.4.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-13 00:00:00.000000000 Z
12
+ date: 2011-12-14 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: a server configuration toolkit
15
15
  email: jan.zimmek@web.de
@@ -29,6 +29,7 @@ files:
29
29
  - lib/gluez/resources/enable.rb
30
30
  - lib/gluez/resources/file.rb
31
31
  - lib/gluez/resources/gem.rb
32
+ - lib/gluez/resources/initd.rb
32
33
  - lib/gluez/resources/link.rb
33
34
  - lib/gluez/resources/mount.rb
34
35
  - lib/gluez/resources/package.rb
@@ -37,6 +38,7 @@ files:
37
38
  - lib/gluez/resources/source.rb
38
39
  - lib/gluez/resources/start.rb
39
40
  - lib/gluez/resources/stop.rb
41
+ - lib/gluez/resources/substitute.rb
40
42
  - lib/gluez/resources/transfer.rb
41
43
  - lib/gluez/resources/umount.rb
42
44
  - lib/gluez/string.rb