rook 0.0.2 → 0.1.0

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