gluez 0.4.4 → 0.4.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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