capistrano-mon 0.0.3 → 0.0.4
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/capistrano-mon.gemspec +2 -0
- data/lib/capistrano-mon.rb +7 -36
- data/lib/capistrano-mon/version.rb +1 -1
- metadata +34 -2
data/capistrano-mon.gemspec
CHANGED
data/lib/capistrano-mon.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "capistrano-mon/version"
|
2
|
+
require "capistrano/configuration/actions/file_transfer_ext"
|
3
|
+
require "capistrano/configuration/resources/file_resources"
|
2
4
|
require "erb"
|
3
|
-
require "tempfile"
|
4
5
|
require "uri"
|
5
6
|
|
6
7
|
module Capistrano
|
@@ -65,7 +66,7 @@ module Capistrano
|
|
65
66
|
# Do not run automatically during normal `deploy' to avoid slow down.
|
66
67
|
# If you want to do so, add following line in your ./config/deploy.rb
|
67
68
|
#
|
68
|
-
# after 'deploy:
|
69
|
+
# after 'deploy:finalize_update', 'mon:update'
|
69
70
|
|
70
71
|
task(:_update, :roles => :app, :except => { :no_release => true }) {
|
71
72
|
configure
|
@@ -112,13 +113,6 @@ module Capistrano
|
|
112
113
|
update_plugins
|
113
114
|
}
|
114
115
|
|
115
|
-
def tempfile(name)
|
116
|
-
f = Tempfile.new(name)
|
117
|
-
path = f.path
|
118
|
-
f.close(true) # close and remove tempfile immediately
|
119
|
-
path
|
120
|
-
end
|
121
|
-
|
122
116
|
_cset(:mon_plugins_path, "/usr/local/lib/mon")
|
123
117
|
_cset(:mon_plugins, [])
|
124
118
|
#
|
@@ -137,7 +131,7 @@ module Capistrano
|
|
137
131
|
#
|
138
132
|
task(:update_plugins, :roles => :app, :except => { :no_release => true }) {
|
139
133
|
srcs = mon_plugins.map { |uri, name| uri }
|
140
|
-
tmps = mon_plugins.map { |uri, name|
|
134
|
+
tmps = mon_plugins.map { |uri, name| capture("t=$(mktemp /tmp/capistrano-mon.XXXXXXXXXX);rm -f $t;echo $t").chomp }
|
141
135
|
dsts = mon_plugins.map { |uri, name|
|
142
136
|
basename = File.basename(name || URI.parse(uri).path)
|
143
137
|
case basename
|
@@ -168,35 +162,12 @@ module Capistrano
|
|
168
162
|
# TODO: setup (sysvinit|daemontools|upstart|runit|systemd) service of mon
|
169
163
|
}
|
170
164
|
|
171
|
-
def template(file)
|
172
|
-
if File.file?(file)
|
173
|
-
File.read(file)
|
174
|
-
elsif File.file?("#{file}.erb")
|
175
|
-
ERB.new(File.read("#{file}.erb")).result(binding)
|
176
|
-
else
|
177
|
-
abort("No such template: #{file} or #{file}.erb")
|
178
|
-
end
|
179
|
-
end
|
180
|
-
|
181
165
|
_cset(:mon_template_path, File.join(File.dirname(__FILE__), 'capistrano-mon', 'templates'))
|
182
166
|
_cset(:mon_configure_files, %w(/etc/default/mon mon.cf))
|
183
167
|
task(:configure, :roles => :app, :except => { :no_release => true }) {
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
begin
|
188
|
-
srcs.zip(tmps) do |src, tmp|
|
189
|
-
put(template(src), tmp)
|
190
|
-
end
|
191
|
-
execute = []
|
192
|
-
dirs = dsts.map { |path| File.dirname(path) }.uniq
|
193
|
-
execute << "#{sudo} mkdir -p #{dirs.map { |dir| dir.dump }.join(' ')}" unless dirs.empty?
|
194
|
-
tmps.zip(dsts) do |tmp, dst|
|
195
|
-
execute << "( diff -u #{dst.dump} #{tmp.dump} || #{sudo} mv -f #{tmp.dump} #{dst.dump} )"
|
196
|
-
end
|
197
|
-
run(execute.join(' && ')) unless execute.empty?
|
198
|
-
ensure
|
199
|
-
run("rm -f #{tmps.map { |t| t.dump }.join(' ')}") unless tmps.empty?
|
168
|
+
mon_configure_files.each do |f|
|
169
|
+
safe_put(template(f, :path => mon_template_path), (File.expand_path(f) == f ? f : File.join(mon_path, f)),
|
170
|
+
:sudo => true, :place => :if_modified)
|
200
171
|
end
|
201
172
|
}
|
202
173
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-mon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
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:
|
12
|
+
date: 2013-02-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
@@ -27,6 +27,38 @@ dependencies:
|
|
27
27
|
- - ! '>='
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: capistrano-file-resources
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.0.1
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.0.1
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: capistrano-file-transfer-ext
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 0.0.3
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.0.3
|
30
62
|
description: a capistrano recipe to setup Mon.
|
31
63
|
email:
|
32
64
|
- yamashita@geishatokyo.com
|