bee 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,85 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Copyright 2006-2007 Michel Casabianca <michel.casabianca@gmail.com>
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require 'fileutils'
18
+ $:.unshift(File.join(File.dirname(__FILE__)))
19
+ require 'tmp_test_case'
20
+ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
21
+ require 'bee_util'
22
+
23
+ # Test case for utility methods.
24
+ class TestBeeUtil < TmpTestCase
25
+
26
+ include Bee::Util::FileSelector
27
+
28
+ # Test FileSelector class.
29
+ def test_select_files
30
+ # make test files
31
+ path = File.join(@tmp_dir, '1.txt')
32
+ File.open(path, 'w') {|file| file.write('TEST')}
33
+ path = File.join(@tmp_dir, '2.txt')
34
+ File.open(path, 'w') {|file| file.write('TEST')}
35
+ path = File.join(@tmp_dir, '3.txt')
36
+ File.open(path, 'w') {|file| file.write('TEST')}
37
+ path = File.join(@tmp_dir, '1.tst')
38
+ File.open(path, 'w') {|file| file.write('TEST')}
39
+ path = File.join(@tmp_dir, '2.tst')
40
+ File.open(path, 'w') {|file| file.write('TEST')}
41
+ path = File.join(@tmp_dir, '3.tst')
42
+ File.open(path, 'w') {|file| file.write('TEST')}
43
+ # test file selection
44
+ includes = "#{@tmp_dir}/*"
45
+ excludes = nil
46
+ actual = select_files(includes, excludes)
47
+ expected = ["#{@tmp_dir}/1.tst", "#{@tmp_dir}/1.txt",
48
+ "#{@tmp_dir}/2.tst", "#{@tmp_dir}/2.txt",
49
+ "#{@tmp_dir}/3.tst", "#{@tmp_dir}/3.txt"]
50
+ assert_equal(expected, actual)
51
+ includes = "#{@tmp_dir}/*"
52
+ excludes = "#{@tmp_dir}/*.tst"
53
+ actual = select_files(includes, excludes)
54
+ expected = ["#{@tmp_dir}/1.txt", "#{@tmp_dir}/2.txt", "#{@tmp_dir}/3.txt"]
55
+ assert_equal(expected, actual)
56
+ includes = "#{@tmp_dir}/1.*"
57
+ excludes = nil
58
+ actual = select_files(includes, excludes)
59
+ expected = ["#{@tmp_dir}/1.tst", "#{@tmp_dir}/1.txt"]
60
+ assert_equal(expected, actual)
61
+ end
62
+
63
+ # Test find method.
64
+ def test_find
65
+ # nominal case
66
+ file = File.join(@tmp_dir, 'file.txt')
67
+ File.open(file, 'w') {|file| file.write('TEST')}
68
+ dir = File.join(@tmp_dir, 'dir')
69
+ FileUtils.mkdir(dir)
70
+ Dir.chdir(dir)
71
+ actual = Bee::Util::find('file.txt')
72
+ expected = '../file.txt'
73
+ assert_equal(expected, actual)
74
+ # failure: file not found
75
+ begin
76
+ Bee::Util::find('foo.bar')
77
+ flunk "Should have failed"
78
+ rescue
79
+ expected = 'File not found'
80
+ actual = $!.to_s
81
+ assert_equal(expected, actual)
82
+ end
83
+ end
84
+
85
+ end
@@ -0,0 +1,26 @@
1
+ # Copyright 2006-2007 Michel Casabianca <michel.casabianca@gmail.com>
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # Empty build for testing purpose. Contains a single context.
16
+ class TestBuild
17
+
18
+ attr_reader :context
19
+ attr_reader :listener
20
+
21
+ def initialize(context, listener)
22
+ @context = context
23
+ @listener = listener
24
+ end
25
+
26
+ end
@@ -0,0 +1,60 @@
1
+ # Copyright 2006-2007 Michel Casabianca <michel.casabianca@gmail.com>
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # Test build listener.
16
+ class TestBuildListener
17
+
18
+ attr_reader :started
19
+ attr_reader :finished
20
+ attr_reader :targets
21
+ attr_reader :tasks
22
+ attr_reader :success
23
+ attr_reader :errors
24
+ attr_accessor :output
25
+
26
+ def initialize
27
+ @targets = []
28
+ @tasks = []
29
+ @output = ''
30
+ end
31
+
32
+ def build_started(build)
33
+ @started = true
34
+ end
35
+
36
+ def build_finished(build)
37
+ @finished = true
38
+ end
39
+
40
+ def target(target)
41
+ @targets << target
42
+ end
43
+
44
+ def task(task)
45
+ @tasks << tasks
46
+ end
47
+
48
+ def error(exception)
49
+ @errors = exception
50
+ end
51
+
52
+ def print(text)
53
+ @output << text
54
+ end
55
+
56
+ def puts(text)
57
+ @output << text + "\n"
58
+ end
59
+
60
+ end
@@ -0,0 +1,58 @@
1
+ # Copyright 2006-2007 Michel Casabianca <michel.casabianca@gmail.com>
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'test/unit'
16
+ require 'fileutils'
17
+
18
+ # Test case that creates a 'tmp' directory before each test and deletes it
19
+ # after. Also disable tests if we can't write on disk (if we run tests while
20
+ # installing with gem in a system directory for instance).
21
+ class TmpTestCase < Test::Unit::TestCase
22
+
23
+ # Temporary directory.
24
+ TEMP_DIR = 'tmp'
25
+
26
+ # Constructor: disable test if we don't have write permission.
27
+ def initialize(*args)
28
+ super(*args)
29
+ @home = File.expand_path(File.dirname(__FILE__))
30
+ @working_dir = Dir.getwd
31
+ @tmp_dir = File.join(@home, TEMP_DIR)
32
+ begin
33
+ FileUtils.makedirs(@tmp_dir)
34
+ @run_tests = true
35
+ rescue
36
+ @run_tests = false
37
+ methods = self.class.public_instance_methods
38
+ for method in methods
39
+ self.class.remove_method(Symbol.new(method)) if method =~ /^test_.*/
40
+ end
41
+ end
42
+ end
43
+
44
+ # Run before any test: create temporary directory.
45
+ def setup
46
+ FileUtils.makedirs(@tmp_dir)
47
+ end
48
+
49
+ # Run after any test: delete temporary directory.
50
+ def teardown
51
+ Dir.chdir(@working_dir)
52
+ FileUtils.rm_rf(@tmp_dir)
53
+ end
54
+
55
+ def test_
56
+ end
57
+
58
+ end
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- # Copyright 2006 Michel Casabianca <casa@sweetohm.net>
3
+ # Copyright 2006-2007 Michel Casabianca <michel.casabianca@gmail.com>
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
2
+ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: bee
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.3.1
7
- date: 2006-11-10 00:00:00 +01:00
6
+ version: 0.4.0
7
+ date: 2007-06-25 00:00:00 +02:00
8
8
  summary: bee is a build tool
9
9
  require_paths:
10
10
  - lib
@@ -27,14 +27,24 @@ signing_key:
27
27
  cert_chain:
28
28
  post_install_message: Enjoy bee!
29
29
  authors:
30
- - Michel Casabianca
30
+ - Michel Casabianca & Contributors
31
31
  files:
32
32
  - bin/bee
33
+ - bin/bee.bat
33
34
  - lib/bee.rb
34
35
  - lib/bee_console.rb
35
- - lib/bee_default_context.rb
36
+ - lib/bee_task.rb
37
+ - lib/bee_task_default.rb
38
+ - lib/bee_util.rb
39
+ - test/tc_bee_build.rb
40
+ - test/tc_bee_console.rb
36
41
  - test/tc_bee_console_formatter.rb
37
- - test/tc_bee_default_tasks.rb
42
+ - test/tc_bee_context.rb
43
+ - test/tc_bee_task_default.rb
44
+ - test/tc_bee_util.rb
45
+ - test/test_build.rb
46
+ - test/test_build_listener.rb
47
+ - test/tmp_test_case.rb
38
48
  - test/ts_bee.rb
39
49
  - README
40
50
  - LICENSE
@@ -51,5 +61,22 @@ extensions: []
51
61
 
52
62
  requirements: []
53
63
 
54
- dependencies: []
55
-
64
+ dependencies:
65
+ - !ruby/object:Gem::Dependency
66
+ name: archive-tar-minitar
67
+ version_requirement:
68
+ version_requirements: !ruby/object:Gem::Version::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 0.5.1
73
+ version:
74
+ - !ruby/object:Gem::Dependency
75
+ name: rubyzip
76
+ version_requirement:
77
+ version_requirements: !ruby/object:Gem::Version::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 0.9.1
82
+ version:
@@ -1,475 +0,0 @@
1
- # Copyright 2006 Michel Casabianca <casa@sweetohm.net>
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License");
4
- # you may not use this file except in compliance with the License.
5
- # You may obtain a copy of the License at
6
- #
7
- # http://www.apache.org/licenses/LICENSE-2.0
8
- #
9
- # Unless required by applicable law or agreed to in writing, software
10
- # distributed under the License is distributed on an "AS IS" BASIS,
11
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
- # See the License for the specific language governing permissions and
13
- # limitations under the License.
14
-
15
- # Default bee context. This script is evaluated before getting binding
16
- # for context, thus all defined functions are accessible in scripts
17
- # that run in targets. Furthermore, last evaluated expression is a
18
- # mapping of extension tasks.
19
-
20
- ############################ UTILITY FUNCTIONS ############################
21
-
22
- # Convenient method to raise a BuildError. This is necessary to interrupt
23
- # build with an error message but without a stack trace (which would
24
- # indicate an internal error).
25
- # - message: error message.
26
- def error(message)
27
- raise BuildError.new(message)
28
- end
29
-
30
- # Run a shell script and raise a build error if script returned a value
31
- # different of 0.
32
- # - script: script to run.
33
- def sh(script)
34
- system(script) or error "Script '#{script}' exited with value '#{$?}'"
35
- end
36
-
37
- ############################ TASK DEFINITIONS #############################
38
-
39
- # Prints a message. This message may be a String (standard output) or any
40
- # Ruby object. In this latter case, print its inspected value.
41
- # - message: message to print.
42
- def print(message)
43
- case message
44
- when String
45
- puts evaluate_object(message)
46
- else
47
- puts message.inspect
48
- end
49
- end
50
-
51
- # Print a file contents.
52
- # - file: file to print out.
53
- def cat(file)
54
- file = evaluate_object(file)
55
- error "Parameter must be a String" unless file.kind_of?(String)
56
- error "File '#{file}' not found" unless
57
- File.exists?(file) or File.directory?(file)
58
- puts File.read(file).strip
59
- end
60
-
61
- # Change working directory. This change will persist for all tasks run in
62
- # the target. Parameter is a string with directory to change to.
63
- def cd(dir)
64
- dir = evaluate_object(dir)
65
- error "cd parameter is a String" unless dir.kind_of?(String)
66
- Dir.chdir(dir)
67
- end
68
-
69
- # Make a directory and parent directories if necessary. Doesn't complain if
70
- # directory already exists.
71
- # - dir: directory to create.
72
- def mkdir(dirs)
73
- require 'fileutils'
74
- dirs = evaluate_object(dirs)
75
- error "mkdir parameter must a String or an array of Strings" unless
76
- dirs.kind_of?(String) or dirs.kind_of?(Array)
77
- for dir in dirs
78
- dir = evaluate_object(dir)
79
- error "mkdir parameter must a String or an array of Strings" unless
80
- dir.kind_of?(String)
81
- FileUtils.makedirs(dir)
82
- end
83
- end
84
-
85
- # Copy a files or directoris to destination file or directory. Parameter is a
86
- # Hash with following entries:
87
- # - src: glob for source files or directories.
88
- # - dest: destination file or directory.
89
- def cp(params)
90
- require 'fileutils'
91
- params_desc = {
92
- 'src' => :mandatory,
93
- 'dest' => :mandatory
94
- }
95
- check_task_parameters(params, params_desc)
96
- src = evaluate_object(params['src'])
97
- error "cp 'src' parameter must a glob or a list of globs" unless
98
- src.kind_of?(String) or src.kind_of?(Array)
99
- dest = evaluate_object(params['dest'])
100
- error "cp 'dest' parameter must a glob or a list of globs" unless
101
- dest.kind_of?(String)
102
- files = []
103
- for element in src
104
- error "cp 'src' parameter must a glob or a list of globs" unless
105
- element.kind_of?(String)
106
- files += Dir.glob(element)
107
- end
108
- files = files[0] if files.length == 1
109
- FileUtils.cp_r(files, dest)
110
- end
111
-
112
- # Move source file(s) or directories to dest file or directory. Parameter is
113
- # a Hahs with following keys:
114
- # - src: glob for files and directories to move.
115
- # - dest: file or directory to move file(s) to.
116
- def mv(params)
117
- require 'fileutils'
118
- params_desc = {
119
- 'src' => :mandatory,
120
- 'dest' => :mandatory
121
- }
122
- check_task_parameters(params, params_desc)
123
- src = evaluate_object(params['src'])
124
- error "mv 'src' parameter must a glob or a list of globs" unless
125
- src.kind_of?(String) or src.kind_of?(Array)
126
- dest = evaluate_object(params['dest'])
127
- error "mv 'dest' parameter must a glob or a list of globs" unless
128
- dest.kind_of?(String)
129
- files = []
130
- for element in src
131
- error "mv 'src' parameter must a glob or a list of globs" unless
132
- element.kind_of?(String)
133
- files += Dir.glob(element)
134
- end
135
- files = files[0] if files.length == 1
136
- FileUtils.mv(files, dest)
137
- end
138
-
139
- # Delete files for a given glob. Parameter is a string for glob of files
140
- # to delete.
141
- def rm(globs)
142
- require 'fileutils'
143
- globs = evaluate_object(globs)
144
- error "rm parameter is a String or Array of Strings" unless
145
- globs.kind_of?(String) or globs.kind_of?(Array)
146
- for glob in globs
147
- files = Dir.glob(glob)
148
- for file in files
149
- FileUtils.rm_f(file)
150
- end
151
- end
152
- end
153
-
154
- # Delete directories recursively. Parameter is a string for glob of directories
155
- # to delete.
156
- def rmdir(globs)
157
- require 'fileutils'
158
- globs = evaluate_object(globs)
159
- error "rm parameter is a String or an Array of Strings" unless
160
- globs.kind_of?(String) or globs.kind_of?(Array)
161
- for glob in globs
162
- error "rm parameter is a String or an Array of Strings" unless
163
- glob.kind_of?(String)
164
- dirs = Dir.glob(glob)
165
- for dir in dirs
166
- FileUtils.rm_rf(dir)
167
- end
168
- end
169
- end
170
-
171
- # Find files for a given glob and store list in a property. Parameter is
172
- # a Hash with entries:
173
- # - files: glob or list of globs for files to look for.
174
- # - toprop: name of the property to set.
175
- def find(parameters)
176
- params_desc = {
177
- 'files' => :mandatory,
178
- 'toprop' => :mandatory
179
- }
180
- check_task_parameters(parameters, params_desc)
181
- files = []
182
- globs = evaluate_object(parameters['files'])
183
- error "find 'files' parameter is a String or an Array of Strings" unless
184
- globs.kind_of?(String) or globs.kind_of?(Array)
185
- toprop = evaluate_object(parameters['toprop'])
186
- for glob in globs
187
- error "find 'files' parameter is a String or an Array of Strings" unless
188
- glob.kind_of?(String)
189
- files += Dir.glob(evaluate_object(glob))
190
- end
191
- set(toprop, files)
192
- end
193
-
194
- # Run a set of tests selected using globs. Parameter is a glob or list of
195
- # globs for files or directories to run.
196
- # FIXME: if tasks runs twice, it will run twice loaded tests...
197
- def test(globs)
198
- require 'test/unit'
199
- require 'test/unit/testresult'
200
- files = []
201
- for glob in globs
202
- error "Parameter must be a String or a list of Strings" unless
203
- glob.kind_of?(String)
204
- files += Dir.glob(evaluate_object(glob))
205
- end
206
- for file in files
207
- load file
208
- end
209
- Test::Unit::AutoRunner.run
210
- end
211
-
212
- # Run an ERB file or source and store result in a file or property. Parameter
213
- # is a Hash with following keys:
214
- # - source: ERB source text (if no 'file').
215
- # - file: ERB file name (if no 'source').
216
- # - tofile: file where to store result (if no 'toprop').
217
- # - toprop: property name where to store result (if no 'tofile').
218
- def erb(params)
219
- require 'erb'
220
- # check parameters
221
- params_desc = {
222
- 'source' => :optional,
223
- 'file' => :optional,
224
- 'tofile' => :optional,
225
- 'toprop' => :optional
226
- }
227
- check_task_parameters(params, params_desc)
228
- source = params['source']
229
- file = evaluate_object(params['file'])
230
- tofile = evaluate_object(params['tofile'])
231
- toprop = evaluate_object(params['toprop'])
232
- error "Must pass one of 'source' or 'file' parameters to erb task" if
233
- not source and not file
234
- error "Must pass one of 'tofile' or 'toprop' parameters to erb task" if
235
- not tofile and not toprop
236
- # load ERB source
237
- erb_source = source||File.read(file)
238
- template = ERB.new(erb_source)
239
- begin
240
- result = template.result(@context_binding)
241
- rescue
242
- error "Error processing ERB: #{$!}"
243
- end
244
- # write result in file or set property
245
- if tofile
246
- File.open(tofile, 'w') { |file| file.write(result) }
247
- else
248
- set(toprop, result)
249
- end
250
- end
251
-
252
- # Generate RDoc documentation for a given list of globs and an output directory.
253
- # Parameter is a Hash with following keys:
254
- # - input: input files as a glob (or list of globs). File mays be directories.
255
- # - output: output directory for generated documentation.
256
- def rdoc(params)
257
- require 'rdoc/rdoc'
258
- params_desc = {
259
- 'input' => :mandatory,
260
- 'output' => :mandatory
261
- }
262
- check_task_parameters(params, params_desc)
263
- files = []
264
- input = params['input']
265
- for glob in input
266
- files += Dir.glob(evaluate_object(glob))
267
- end
268
- output = evaluate_object(params['output'])
269
- command_line = ['-S', '-o', output] + files
270
- rdoc = RDoc::RDoc.new
271
- rdoc.document(command_line)
272
- end
273
-
274
- # Generate a Gem package. Parameter is the name of the Gem description file.
275
- # Resulting Gem package is generated in current directory (as with command
276
- # line tool).
277
- def gembuild(description)
278
- require 'rubygems'
279
- description = evaluate_object(description)
280
- arguments = ['build', description]
281
- Gem.manage_gems
282
- Gem::GemRunner.new.run(arguments)
283
- end
284
-
285
- # Generate a ZIP archive. Parameter is a Hash with following entries:
286
- # - files: glob or list of globs for files to select for the archive.
287
- # - archive: the archive name.
288
- # - prefix: prefix for archive entries (default to nil).
289
- # Note: if archive exists, files are added to the archive.
290
- def zip(parameters)
291
- require 'zip/zip'
292
- # parse parameters
293
- params_desc = {
294
- 'files' => :mandatory,
295
- 'archive' => :mandatory,
296
- 'prefix' => :optional
297
- }
298
- check_task_parameters(parameters, params_desc)
299
- globs = evaluate_object(parameters['files'])
300
- files = []
301
- for glob in globs
302
- files += Dir.glob(evaluate_object(glob))
303
- end
304
- archive = evaluate_object(parameters['archive'])
305
- prefix = evaluate_object(parameters['prefix'])
306
- # build the archive
307
- zipfile = Zip::ZipFile.open(archive, Zip::ZipFile::CREATE) do |zip|
308
- for file in files
309
- entry = prefix ? File.join(prefix, file) : file
310
- puts "Adding '#{entry}'"
311
- zip.add(entry, file)
312
- end
313
- zip.close
314
- end
315
- end
316
-
317
- ############################## TASKS MAPPING ##############################
318
-
319
- {
320
- "print" =>
321
- "Print a message on console. This message may be a String (standard output)
322
- or any Ruby object. In this latter case, print its inspected value. Parameter
323
- is the message to output as a String.
324
-
325
- - message: message to print.
326
-
327
- Example:
328
-
329
- - print: \"Hello World!\"",
330
-
331
- "cat" =>
332
- "Print contents of a given file on the console. Parameter is file to output
333
- as a String.
334
-
335
- - file: file to print out.
336
-
337
- Example:
338
-
339
- - cat: \"doc/welcome-message.txt\"",
340
-
341
- "cd" =>
342
- "Change working directory. This change will persist for all tasks in the
343
- target but not in other targets. Parameter is a String with directory to
344
- change to.
345
-
346
- Example:
347
-
348
- - cd: \"build\"",
349
-
350
- "mkdir" =>
351
- "Make a directory and parent directories if necessary. Doesn't complain if
352
- directory already exists. Parameter is directory to create as a String or a
353
- list of directories as Strings.
354
-
355
- Example:
356
-
357
- - mkdir: \"foo/bar\"
358
- - mkdir: [\"foo\", \"bar\"]",
359
-
360
- "cp" =>
361
- "Copy files or directories to destination file or directory. Parameter is a
362
- Hash with following entries:
363
-
364
- - src: glob for source files or directories.
365
- - dest: destination file or directory.
366
-
367
- Example:
368
-
369
- - cp:
370
- src: \"doc/png/*.png\"
371
- dest: :doc",
372
-
373
- "mv" =>
374
- "Move source file(s) or directory(ies) to dest file or directory. Parameter is
375
- a Hash with following entries:
376
-
377
- - src: glob for files and directories to move.
378
- - dest: file or directory to move file(s) to.
379
-
380
- Example:
381
-
382
- - mv: { src: \"**/*.java\", dest: \"trash\" }",
383
-
384
- "rm" =>
385
- "Delete files for a given glob or list of globs. Parameter is a glob or list
386
- of globs for files to delete.
387
-
388
- Example:
389
-
390
- - rm: \"**/*~\"
391
- - rm: [\"**/*~\", \"**/.DS_Store\"]",
392
-
393
- "rmdir" =>
394
- "Delete directories recursively. Parameter is a string for glob of directories
395
- to delete.
396
-
397
- Example:
398
-
399
- - rmdir: :build",
400
-
401
- "find" =>
402
- "Find files for a glob or list of globs and store list in a property.
403
- Parameter is a Hash with entries:
404
-
405
- - files: glob or list of globs for files to look for.
406
- - toprop: name of the property to set.
407
-
408
- Example:
409
-
410
- - find: { files: \"**/*.rb\", toprop: \"rb_files_to_check\" }",
411
-
412
- "test" =>
413
- "Run a set of tests selected using globs. Parameter is a glob or list of
414
- globs for files or directories to run.
415
-
416
- Example:
417
-
418
- - test: \"**/tc_*.rb\"
419
-
420
- *FIXME*: if tasks runs twice, it will run twice loaded tests...",
421
-
422
- "erb" =>
423
- "Run an ERB file or source in bee context and store result in a file or
424
- property. Parameter is a Hash with following entries:
425
-
426
- - source: ERB source text (if no 'file').
427
- - file: ERB file name (if no 'source').
428
- - tofile: file where to store result (if no 'toprop').
429
- - toprop: property name where to store result (if no 'tofile').
430
-
431
- Example:
432
-
433
- - erb: { file: \"gem.spec.erb\", tofile: \"gem.spec\" }
434
-
435
- Notes: In these ERB files, you can access a property _foo_ writing:
436
-
437
- <p>Hello <%= foo %>!</p>",
438
-
439
- "rdoc" =>
440
- "Generate RDoc documentation for a given list of globs and an output directory.
441
- Parameter is a Hash with following entries:
442
-
443
- - input: input files as a glob (or list of globs). File mays be directories.
444
- - output: output directory for generated documentation.
445
-
446
- Example:
447
-
448
- - rdoc:
449
- input: [\"README\", \"LICENSE\", :src]
450
- output: :api",
451
-
452
- "gembuild" =>
453
- "Generate a Gem package. Parameter is the name of the Gem description file.
454
- Resulting Gem package is generated in current directory (as with command
455
- line tool).
456
-
457
- Example:
458
-
459
- - gembuild: :gem_spec",
460
-
461
- "zip" =>
462
- "Generate a ZIP archive. Parameter is a Hash with following entries:
463
-
464
- - files: glob or list of globs for files to select for the archive.
465
- - archive: the archive name.
466
- - prefix: prefix for archive entries (default to nil).
467
-
468
- Example:
469
-
470
- - zip:
471
- files: :zip_files
472
- archive: :zip_archive
473
-
474
- Note: if archive already exists, files are added to the archive."
475
- }