rook 0.0.2 → 0.1.0

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.
Files changed (87) hide show
  1. data/README.txt +124 -37
  2. data/bin/rook +8 -902
  3. data/doc-api/classes/BZ2.html +111 -0
  4. data/doc-api/classes/BZ2/Reader.html +234 -0
  5. data/doc-api/classes/Digest.html +107 -0
  6. data/doc-api/classes/Digest/Base.html +254 -0
  7. data/doc-api/classes/Enumerable.html +430 -0
  8. data/doc-api/classes/File.html +208 -0
  9. data/doc-api/classes/FileUtils.html +758 -0
  10. data/doc-api/classes/Kernel.html +317 -0
  11. data/doc-api/classes/Rook.html +148 -0
  12. data/doc-api/classes/Rook/Assertion.html +164 -0
  13. data/doc-api/classes/Rook/AssertionError.html +111 -0
  14. data/doc-api/classes/Rook/CommandOptionError.html +113 -0
  15. data/doc-api/classes/Rook/Commands.html +1158 -0
  16. data/doc-api/classes/Rook/Cookbook.html +357 -0
  17. data/doc-api/classes/Rook/CookbookError.html +161 -0
  18. data/doc-api/classes/Rook/CookbookValidator.html +215 -0
  19. data/doc-api/classes/Rook/Kitchen.html +875 -0
  20. data/doc-api/classes/Rook/KitchenHelper.html +386 -0
  21. data/doc-api/classes/Rook/Main.html +325 -0
  22. data/doc-api/classes/Rook/Parameters.html +443 -0
  23. data/doc-api/classes/Rook/Recipe.html +546 -0
  24. data/doc-api/classes/Rook/RookError.html +111 -0
  25. data/doc-api/classes/Rook/Util.html +408 -0
  26. data/doc-api/classes/Rook/Util/UndefinedPropertyError.html +160 -0
  27. data/doc-api/created.rid +1 -0
  28. data/doc-api/files/__/README_txt.html +313 -0
  29. data/doc-api/files/rook/commands_rb.html +115 -0
  30. data/doc-api/files/rook/cookbook_rb.html +115 -0
  31. data/doc-api/files/rook/helper/bz2_rb.html +114 -0
  32. data/doc-api/files/rook/helper/digest_rb.html +114 -0
  33. data/doc-api/files/rook/helper/enumerable_rb.html +107 -0
  34. data/doc-api/files/rook/helper/file_rb.html +107 -0
  35. data/doc-api/files/rook/helper/fileutils_rb.html +124 -0
  36. data/doc-api/files/rook/helper/kernel_rb.html +107 -0
  37. data/doc-api/files/rook/kitchen_rb.html +117 -0
  38. data/doc-api/files/rook/main_rb.html +117 -0
  39. data/doc-api/files/rook/recipe_rb.html +114 -0
  40. data/doc-api/files/rook/util_rb.html +115 -0
  41. data/doc-api/files/rook_rb.html +122 -0
  42. data/doc-api/fr_class_index.html +50 -0
  43. data/doc-api/fr_file_index.html +40 -0
  44. data/doc-api/fr_method_index.html +181 -0
  45. data/doc-api/index.html +24 -0
  46. data/doc-api/rdoc-style.css +208 -0
  47. data/examples/hello_c/Rookbook.rb +37 -0
  48. data/examples/hello_c/Rookbook.yaml +45 -0
  49. data/examples/hello_c/hello.c +6 -3
  50. data/examples/project/README.txt +8 -0
  51. data/examples/project/Rookbook.props +1 -0
  52. data/examples/project/Rookbook.rb +120 -0
  53. data/examples/project/Rookbook.yaml +117 -0
  54. data/examples/project/bin/example +12 -0
  55. data/examples/project/example.gemspec +29 -0
  56. data/examples/project/lib/example.rb +36 -0
  57. data/examples/{archive → project}/lib/example/bar.rb +0 -0
  58. data/examples/{archive → project}/lib/example/baz.rb +0 -0
  59. data/examples/{archive → project}/lib/example/foo.rb +0 -0
  60. data/examples/project/setup.rb +1331 -0
  61. data/examples/project/test/test.rb +27 -0
  62. data/lib/rook.rb +50 -0
  63. data/lib/rook/commands.rb +426 -0
  64. data/lib/rook/cookbook.rb +237 -0
  65. data/lib/rook/helper/bz2.rb +39 -0
  66. data/lib/rook/helper/digest.rb +76 -0
  67. data/lib/rook/helper/enumerable.rb +121 -0
  68. data/lib/rook/helper/file.rb +50 -0
  69. data/lib/rook/helper/fileutils.rb +340 -0
  70. data/lib/rook/helper/kernel.rb +108 -0
  71. data/lib/rook/kitchen.rb +668 -0
  72. data/lib/rook/main.rb +280 -0
  73. data/lib/rook/recipe.rb +259 -0
  74. data/lib/rook/rookbook.schema.yaml +156 -0
  75. data/lib/rook/util.rb +172 -0
  76. data/rook.gemspec +56 -0
  77. metadata +139 -45
  78. data/examples/archive/COPYING +0 -340
  79. data/examples/archive/README.txt +0 -1
  80. data/examples/archive/Rookbook +0 -56
  81. data/examples/archive/bin/example +0 -0
  82. data/examples/archive/doc/index.html +0 -0
  83. data/examples/archive/doc/index.txt +0 -0
  84. data/examples/archive/lib/example.rb +0 -0
  85. data/examples/archive/test/test1.rb +0 -0
  86. data/examples/archive/test/test2.rb +0 -0
  87. data/examples/hello_c/Rookbook +0 -24
@@ -0,0 +1,27 @@
1
+ ##
2
+ ## $Id$
3
+ ## $Release: 0.1.0 $
4
+ ## copyright(c) 2006 kuwata-lab.com all rights reserved.
5
+ ##
6
+
7
+ $LOAD_PATH << 'lib' if test(?f, 'lib/example.rb')
8
+
9
+ require 'test/unit'
10
+ require 'example'
11
+
12
+ class ExampleTest < Test::Unit::TestCase
13
+
14
+
15
+ def test1
16
+ expected = <<END
17
+ 1: foo
18
+ 2: bar
19
+ 3: baz
20
+ END
21
+ argv = ['foo', 'bar', 'baz']
22
+ actual = Example.new(argv).execute()
23
+ assert_equal(expected, actual)
24
+ end
25
+
26
+ end
27
+
@@ -0,0 +1,50 @@
1
+ ##
2
+ ## $Rev: 29 $
3
+ ## $Release: 0.1.0 $
4
+ ## copyright(c) 2006 kuwata-lab.com all rights reserved.
5
+ ##
6
+
7
+
8
+ begin
9
+ require 'rubygems'
10
+ rescue LoadError => ex
11
+ # nothing
12
+ end
13
+
14
+ require 'abstract'
15
+ require 'kwalify'
16
+ require 'fileutils'
17
+
18
+ # !NOTICE! RubyGems not support autoload!
19
+ #autoload :Zlib, 'zlib'
20
+ #autoload :Zip, 'zip/zip' # http://raa.ruby-lang.org/project/rubyzip/
21
+ #autoload :BZ2, 'rook/helper/bz2' # http://raa.ruby-lang.org/project/bz2/
22
+ #autoload :Archive, 'archive/tar/minitar' # http://raa.ruby-lang.org/project/minitar/
23
+
24
+
25
+ ##
26
+ module Rook
27
+
28
+ class RookError < StandardError
29
+ end
30
+
31
+ class AssertionError < Exception
32
+ end
33
+
34
+ module Assertion
35
+ def assert(expr, message)
36
+ raise AssertionError.new(message) unless expr
37
+ end
38
+ def assert_failed(message)
39
+ raise AssertionError.new(message)
40
+ end
41
+ end
42
+
43
+ end
44
+
45
+
46
+ require 'rook/util'
47
+ require 'rook/commands'
48
+ require 'rook/cookbook'
49
+ require 'rook/recipe'
50
+ require 'rook/kitchen'
@@ -0,0 +1,426 @@
1
+ ##
2
+ ## $Rev: 29 $
3
+ ## $Release: 0.1.0 $
4
+ ## copyright(c) 2006 kuwata-lab.com all rights reserved.
5
+ ##
6
+
7
+
8
+ require 'rook/helper/file'
9
+ require 'rook/helper/fileutils'
10
+
11
+
12
+
13
+ module Rook
14
+
15
+
16
+
17
+ ##
18
+ ## commands for recipe method
19
+ ##
20
+ module Commands
21
+
22
+
23
+ private
24
+
25
+
26
+ def _prompt(str)
27
+ puts "rook$ #{str}" unless $rook_verbose == false
28
+ end
29
+
30
+
31
+ def _log(mesg)
32
+ #$rook_logger.print(mesg) if $rook_logger
33
+ puts("rook> " + mesg) if $rook_verbose == true || @verbose
34
+ end
35
+
36
+
37
+ def comment(str) # :doc:
38
+ puts "### " + str unless $rook_verbose == false
39
+ end
40
+
41
+
42
+ def _glob(args) # :nodoc:
43
+ args2 = []
44
+ args.each do |arg|
45
+ if arg.nil?
46
+ # should warn?
47
+ elsif (list = Dir.glob(arg)).empty?
48
+ args2 << arg
49
+ else
50
+ args2.concat(list)
51
+ end
52
+ end
53
+ return args2
54
+ end
55
+
56
+
57
+ def _handle_args(method_name, args, prompt_optstr=nil, log_optstr=nil) # :nodoc:
58
+ # command
59
+ method = method_name.to_s
60
+ command = method.sub(/_(\w+)\z/, '')
61
+ opt_str = $1 ? " -#{$1}" : ''
62
+ # options
63
+ opts = args.pop if args[-1].is_a?(Hash)
64
+ opts.each do |name, value|
65
+ len = name.to_s.length
66
+ opt_str << (len == 1 ? " -#{name}" : " --#{name}")
67
+ opt_str << " #{value}" unless value == true
68
+ #opt_str << (len == 1 ? " #{value}" : "=#{value}") unless val == true
69
+ end if opts
70
+ # args
71
+ args = args.flatten
72
+ _prompt("#{command}#{opt_str}#{prompt_optstr} #{args.join(' ')}")
73
+ args = _glob(args)
74
+ #arg_str = args.collect { |arg| arg.inspect }.join(', ')
75
+ arg_str = args.inspect
76
+ arg_str.chop! ; arg_str[0,1] = '' # "[...]" => "..."
77
+ arg_str << ", #{opts.inspect}" if opts
78
+ _log("#{method}(#{log_optstr}#{arg_str})")
79
+ #
80
+ return args, opts
81
+ end
82
+
83
+
84
+ #--
85
+ # def _install(command, args, options={}) # :nodoc:
86
+ # args = args.flatten
87
+ # if $flag_verbose
88
+ # optstr = ''
89
+ # optstr = << " -m #{options[:mode]}"
90
+ # _prompt("#{command}#{optstr} #{args}")
91
+ # end
92
+ # return if $rook_noexec
93
+ # Kernel.system(str)
94
+ # unless $? == 0 || forced
95
+ # raise RookError.new("command '#{str}' failed.") #'
96
+ # end
97
+ # end
98
+ #++
99
+
100
+
101
+ def _system(command, str, forced) # :nodoc:
102
+ _prompt(str)
103
+ minus = forced ? '-' : ''
104
+ if command == :'`'
105
+ _log("`#{minus}#{str}`")
106
+ else
107
+ _log("#{minus}#{command}(#{str.inspect})")
108
+ end
109
+ return if $rook_noexec
110
+ Kernel.system(str)
111
+ unless $? == 0 || forced
112
+ raise RookError.new("command '#{str}' failed.") #'
113
+ end
114
+ end
115
+
116
+ def cmd(str) # :doc:
117
+ _system(:cmd, str, false)
118
+ end
119
+
120
+ def cmd!(str) # :doc:
121
+ _system(:'cmd!', str, true)
122
+ end
123
+
124
+ def system(str) # :doc:
125
+ _system(:system, str, false)
126
+ end
127
+
128
+ def system!(str) # :doc:
129
+ _system(:'system!', str, true)
130
+ end
131
+
132
+ def sys(str) # :doc:
133
+ _system(:sys, str, false)
134
+ end
135
+
136
+ def sys!(str)
137
+ _system(:'sys!', str, true)
138
+ end
139
+
140
+ #--
141
+ #def `(str) #`
142
+ # _cmd(:'`', str, false)
143
+ #end
144
+ #++
145
+
146
+ def _echo(method_name, args, newline=true) # :nodoc:
147
+ args, opts = _handle_args(method_name, args)
148
+ print args.join(' ')
149
+ print "\n" if newline
150
+ end
151
+
152
+ def echo(*args) # :doc:
153
+ _echo(:echo, args, true)
154
+ end
155
+
156
+ def echo_n(*args) # :doc:
157
+ _echo(:echo_n, args, false)
158
+ end
159
+
160
+
161
+ def _chdir(method_name, dir, &block) # :nodoc:
162
+ args, opts = _handle_args(method_name, [dir])
163
+ dir = args[0]
164
+ cwd = FileUtils.pwd
165
+ FileUtils.chdir(dir)
166
+ if block
167
+ begin
168
+ instance_eval(&block)
169
+ ensure
170
+ _prompt("#{method_name} - # #{cwd}")
171
+ _log("#{method_name}(#{cwd.inspect})")
172
+ FileUtils.chdir(cwd)
173
+ end
174
+ end
175
+ end
176
+
177
+ def cd(dir, &block) # :doc:
178
+ _chdir(:ch, dir, &block)
179
+ end
180
+
181
+ def chdir(dir, &block) # :doc:
182
+ _chdir(:chdir, dir, &block)
183
+ end
184
+
185
+
186
+ def _chmod(method_name, mode, args) # :nodoc:
187
+ mode_str = '%#o' % mode
188
+ opts = args[-1].is_a?(Hash) ? args.pop : {}
189
+ args, opts_dummy = _handle_args(method_name, args, " #{mode_str}", "#{mode_str}, ")
190
+ return if $rook_noexec
191
+ if opts[:filetype]
192
+ testch = nil
193
+ case opts[:filetype]
194
+ when 'file', :file ; testch = ?f
195
+ when 'dir' , :dir ; testch = ?d
196
+ end
197
+ args = args.select { |arg| test(testch, arg) }
198
+ end
199
+ FileUtils.__send__(method_name, mode, args)
200
+ end
201
+
202
+ def chmod(mode, *args) # :doc:
203
+ _chmod(:chmod, mode, args)
204
+ end
205
+
206
+ def chmod_R(mode, *args) # :doc:
207
+ _chmod(:chmod_R, mode, args)
208
+ end
209
+
210
+
211
+ def _chown(method_name, user, group, args, &block) # :nodoc:
212
+ args, opts = _handle_args(method_name, args, " #{user}:#{group}", "#{user}, #{group}, ")
213
+ return if $rook_noexec
214
+ args = args.select(&block) if block
215
+ FileUtils.__send__(method_name, user, group, args)
216
+ end
217
+
218
+ def chown(user, group, *args, &block) # :doc:
219
+ _chown(:chown, user, group, args, &block)
220
+ end
221
+
222
+ def chown_R(user, group, *args, &block) # :doc:
223
+ _chown(:chown_R, user, group, args, &block)
224
+ end
225
+
226
+
227
+ def _command_arg1(method_name, args, options={}) # :nodoc:
228
+ args, opts = _handle_args(method_name, args)
229
+ return if $rook_noexec
230
+ options.merge!(opts) if opts
231
+ args.each do |arg|
232
+ FileUtils.__send__(method_name, arg, options)
233
+ end
234
+ end
235
+
236
+ def mkdir(*args) # :doc:
237
+ _command_arg1(:mkdir, args)
238
+ end
239
+
240
+ def mkdir_p(*args) # :doc:
241
+ _command_arg1(:mkdir_p, args)
242
+ end
243
+
244
+
245
+ def _command_arg2(method_name, args, options={}, &block) # :nodoc:
246
+ args, opts = _handle_args(method_name, args)
247
+ return if $rook_noexec
248
+ options.merge!(opts) if opts
249
+ dest = args.pop
250
+ args = args.select { |filename| yield(filename) } if block
251
+ args.each do |arg|
252
+ FileUtils.__send__(method_name, arg, dest, options)
253
+ end
254
+ end
255
+
256
+
257
+ def _command_args(method_name, args, options={}, &block) # :nodoc:
258
+ args, opts = _handle_args(method_name, args)
259
+ return if $rook_noexec
260
+ options.merge!(opts) if opts
261
+ args = args.select { |filename| yield(filename) } if block
262
+ FileUtils.__send__(method_name, args, options)
263
+ end
264
+
265
+ def rm(*args) # :doc:
266
+ _command_args(:rm, args)
267
+ end
268
+
269
+ def rm_f(*args) # :doc:
270
+ _command_args(:rm_f, args)
271
+ end
272
+
273
+ def rm_r(*args) # :doc:
274
+ _command_args(:rm_r, args)
275
+ end
276
+
277
+ def rm_rf(*args) # :doc:
278
+ _command_args(:rm_rf, args)
279
+ end
280
+
281
+ def touch(*args) # :doc:
282
+ _command_args(:touch, args)
283
+ end
284
+
285
+
286
+ def _command_srcdest(method_name, args, options={}, &block) # :nodoc:
287
+ args, opts = _handle_args(method_name, args)
288
+ return if $rook_noexec
289
+ options.merge!(opts) if opts
290
+ if args.length == 2
291
+ return if block && !yield(args[0])
292
+ FileUtils.__send__(method_name, args[0], args[1], options)
293
+ else
294
+ dest = args.pop
295
+ args = args.find_all { |filename| yield(filename) } if block
296
+ FileUtils.__send__(method_name, args, dest, options)
297
+ end
298
+ end
299
+
300
+ def cp(*args, &block) # :doc:
301
+ _command_srcdest(:cp, args, &block)
302
+ end
303
+
304
+ def cp_p(*args, &block) # :doc:
305
+ _command_srcdest(:cp_p, args, &block)
306
+ end
307
+
308
+ def cp_r(*args, &block) # :doc:
309
+ _command_srcdest(:cp_r, args, &block)
310
+ end
311
+
312
+ def cp_pr(*args, &block) # :doc:
313
+ _command_srcdest(:cp_pr, args, &block)
314
+ end
315
+
316
+ def cp_a(*args, &block) # :doc:
317
+ _command_srcdest(:cp_a, args, &block)
318
+ end
319
+
320
+ def mv(*args, &block) # :doc:
321
+ _command_srcdest(:mv, args, &block)
322
+ end
323
+
324
+ def ln(*args, &block) # :doc:
325
+ _command_srcdest(:ln, args, &block)
326
+ end
327
+
328
+ def ln_s(*args, &block) # :doc:
329
+ _command_srcdest(:ln_s, args, &block)
330
+ end
331
+
332
+ def ln_sf(*args, &block) # :doc:
333
+ _command_srcdest(:ln_s, args, &block)
334
+ end
335
+
336
+ def store(*args, &block) # :doc:
337
+ _command_srcdest(:store, args, &block)
338
+ end
339
+
340
+ def store_p(*args, &block) # :doc:
341
+ _command_srcdest(:store_p, args, &block)
342
+ end
343
+
344
+ def store_a(*args, &block) # :doc:
345
+ _command_srcdest(:store_p, args, &block)
346
+ end
347
+
348
+
349
+ def edit(*args, &block) # :doc:
350
+ args, opts = _handle_args(:edit, args)
351
+ return if $rook_noexec
352
+ args.each do |filename|
353
+ File.edit(filename, &block) if test(?f, filename)
354
+ end
355
+ end
356
+
357
+
358
+ def _zip(method_name, args) # :nodoc:
359
+ args, opts = _handle_args(method_name, args)
360
+ return if $rook_noexec
361
+ zipfilename = args.shift
362
+ FileUtils.__send__(method_name, zipfilename, args, (opts || {}))
363
+ end
364
+
365
+ def zip(*args) # :doc:
366
+ _zip(:zip, args)
367
+ end
368
+
369
+ def zip_r(*args) # :doc:
370
+ _zip(:zip_r, args)
371
+ end
372
+
373
+
374
+ def _unzip(method_name, args) # :nodoc:
375
+ #if (opts = args[-1]).is_a?(Hash)
376
+ # opts[:d] = opts.delete(:basedir) if opts.key?(:basedir)
377
+ #end
378
+ args, opts = _handle_args(method_name, args)
379
+ return if $rook_noexec
380
+ zipfilename = args.shift
381
+ args = nil if args.empty?
382
+ FileUtils.__send__(method_name, zipfilename, args, (opts || {}))
383
+ end
384
+
385
+ def unzip(*args) # :doc:
386
+ _unzip(:unzip, args)
387
+ end
388
+
389
+
390
+ def _tar(command, *args) # :nodoc:
391
+ args, opts = _handle_args(command, args)
392
+ return if $rook_noexec
393
+ tarfilename = args.shift
394
+ FileUtils.__send__(command, tarfilename, args, (opts||{}))
395
+ end
396
+
397
+ def tar_cf(*args) # :doc:
398
+ _tar(:tar_cf, args)
399
+ end
400
+
401
+ def tar_xf(*args) # :doc:
402
+ _tar(:tar_xf, args)
403
+ end
404
+
405
+ def tar_czf(*args) # :doc:
406
+ _tar(:tar_czf, args)
407
+ end
408
+
409
+ def tar_xzf(*args) # :doc:
410
+ _tar(:tar_xzf, args)
411
+ end
412
+
413
+ def tar_cjf(*args) # :doc:
414
+ _tar(:tar_cjf, args)
415
+ end
416
+
417
+ def tar_xjf(*args) # :doc:
418
+ _tar(:tar_xjf, args)
419
+ end
420
+
421
+
422
+ end
423
+
424
+
425
+
426
+ end