kuzushi 0.0.23 → 0.0.24
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/kuzushi.rb +20 -6
- data/spec/kuzushi_spec.rb +25 -0
- metadata +1 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.24
|
data/lib/kuzushi.rb
CHANGED
@@ -9,6 +9,8 @@ require 'erb'
|
|
9
9
|
|
10
10
|
## firewall until ready
|
11
11
|
## ruby 1.9 compatibility
|
12
|
+
## nested configs
|
13
|
+
## user configs
|
12
14
|
|
13
15
|
class Kuzushi
|
14
16
|
attr_accessor :config, :config_names
|
@@ -243,6 +245,17 @@ class Kuzushi
|
|
243
245
|
end
|
244
246
|
end
|
245
247
|
|
248
|
+
|
249
|
+
def script(scripts)
|
250
|
+
to_array(scripts).each do |s|
|
251
|
+
if s =~ /^#!/
|
252
|
+
inline_script(s)
|
253
|
+
else
|
254
|
+
external_script(s)
|
255
|
+
end
|
256
|
+
end
|
257
|
+
end
|
258
|
+
|
246
259
|
def inline_script(script)
|
247
260
|
tmpfile(script) do |tmp|
|
248
261
|
task "run inline script" do
|
@@ -251,10 +264,7 @@ class Kuzushi
|
|
251
264
|
end
|
252
265
|
end
|
253
266
|
|
254
|
-
def
|
255
|
-
return if script.nil?
|
256
|
-
return inline_script(script) if script =~ /^#!/
|
257
|
-
|
267
|
+
def external_script(script)
|
258
268
|
fetch("/scripts/#{script}") do |file|
|
259
269
|
task "run script #{script}" do
|
260
270
|
shell "#{file}"
|
@@ -271,7 +281,7 @@ class Kuzushi
|
|
271
281
|
|
272
282
|
def file(f, &blk)
|
273
283
|
## no magic here - move along
|
274
|
-
fetch("/templates/#{f.template}", lambda { |data| erb data }, &blk) if f.template
|
284
|
+
fetch("/templates/#{f.template}", lambda { |data| erb data }, &blk) if f.template
|
275
285
|
fetch("/files/#{f.source || File.basename(f.file)}", &blk) unless f.template
|
276
286
|
end
|
277
287
|
|
@@ -301,7 +311,11 @@ class Kuzushi
|
|
301
311
|
end
|
302
312
|
|
303
313
|
def get_array(key)
|
304
|
-
|
314
|
+
to_array( get(key) )
|
315
|
+
end
|
316
|
+
|
317
|
+
def to_array(value)
|
318
|
+
[ value || [] ].flatten
|
305
319
|
end
|
306
320
|
|
307
321
|
def wait_for_volume(vol)
|
data/spec/kuzushi_spec.rb
CHANGED
@@ -77,5 +77,30 @@ describe Kuzushi do
|
|
77
77
|
@kuzushi.expects(:shell).with("crontab -u root #{tmpfile}")
|
78
78
|
should.not.raise { @kuzushi.start }
|
79
79
|
end
|
80
|
+
|
81
|
+
it "will run external scripts" do
|
82
|
+
@kuzushi.stubs(:config).returns( {
|
83
|
+
"before" => "script.sh"
|
84
|
+
})
|
85
|
+
@kuzushi.expects(:external_script).with("script.sh")
|
86
|
+
should.not.raise { @kuzushi.start }
|
87
|
+
end
|
88
|
+
|
89
|
+
it "will run inline scripts" do
|
90
|
+
@kuzushi.stubs(:config).returns( {
|
91
|
+
"before" => "#!/bin/bash\n echo 'hello'\n"
|
92
|
+
})
|
93
|
+
@kuzushi.expects(:inline_script).with("#!/bin/bash\n echo 'hello'\n")
|
94
|
+
should.not.raise { @kuzushi.start }
|
95
|
+
end
|
96
|
+
|
97
|
+
it "will run sets of scripts" do
|
98
|
+
@kuzushi.stubs(:config).returns( {
|
99
|
+
"before" => [ "script.sh", "#!/bin/bash\n echo 'hello'\n" ]
|
100
|
+
})
|
101
|
+
@kuzushi.expects(:inline_script).with("#!/bin/bash\n echo 'hello'\n")
|
102
|
+
@kuzushi.expects(:external_script).with("script.sh")
|
103
|
+
should.not.raise { @kuzushi.start }
|
104
|
+
end
|
80
105
|
end
|
81
106
|
|