rake 10.4.2 → 13.0.3
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.
- checksums.yaml +5 -5
- data/CONTRIBUTING.rdoc +16 -7
- data/Gemfile +10 -0
- data/History.rdoc +2022 -287
- data/README.rdoc +40 -25
- data/Rakefile +25 -65
- data/bin/bundle +105 -0
- data/bin/console +7 -0
- data/bin/rake +20 -24
- data/bin/rdoc +29 -0
- data/bin/rubocop +29 -0
- data/bin/setup +6 -0
- data/doc/glossary.rdoc +10 -11
- data/doc/jamis.rb +1 -0
- data/doc/rake.1 +139 -124
- data/doc/rakefile.rdoc +2 -33
- data/exe/rake +27 -0
- data/lib/rake.rb +35 -43
- data/lib/rake/application.rb +125 -91
- data/lib/rake/backtrace.rb +3 -2
- data/lib/rake/clean.rb +8 -6
- data/lib/rake/cloneable.rb +1 -0
- data/lib/rake/cpu_counter.rb +10 -28
- data/lib/rake/default_loader.rb +1 -0
- data/lib/rake/dsl_definition.rb +6 -12
- data/lib/rake/early_time.rb +1 -0
- data/lib/rake/ext/core.rb +1 -0
- data/lib/rake/ext/string.rb +24 -21
- data/lib/rake/file_creation_task.rb +4 -3
- data/lib/rake/file_list.rb +35 -28
- data/lib/rake/file_task.rb +12 -4
- data/lib/rake/file_utils.rb +38 -32
- data/lib/rake/file_utils_ext.rb +8 -18
- data/lib/rake/invocation_chain.rb +1 -0
- data/lib/rake/invocation_exception_mixin.rb +1 -0
- data/lib/rake/late_time.rb +2 -1
- data/lib/rake/linked_list.rb +24 -15
- data/lib/rake/loaders/makefile.rb +23 -9
- data/lib/rake/multi_task.rb +2 -1
- data/lib/rake/name_space.rb +1 -1
- data/lib/rake/packagetask.rb +40 -17
- data/lib/rake/phony.rb +2 -1
- data/lib/rake/private_reader.rb +1 -0
- data/lib/rake/promise.rb +13 -12
- data/lib/rake/pseudo_status.rb +1 -0
- data/lib/rake/rake_module.rb +30 -1
- data/lib/rake/rake_test_loader.rb +18 -13
- data/lib/rake/rule_recursion_overflow_error.rb +2 -2
- data/lib/rake/scope.rb +3 -2
- data/lib/rake/task.rb +82 -31
- data/lib/rake/task_argument_error.rb +1 -0
- data/lib/rake/task_arguments.rb +15 -4
- data/lib/rake/task_manager.rb +54 -33
- data/lib/rake/tasklib.rb +2 -14
- data/lib/rake/testtask.rb +40 -63
- data/lib/rake/thread_history_display.rb +4 -3
- data/lib/rake/thread_pool.rb +16 -17
- data/lib/rake/trace_output.rb +2 -1
- data/lib/rake/version.rb +4 -1
- data/lib/rake/win32.rb +10 -15
- data/rake.gemspec +43 -0
- metadata +33 -270
- data/.autotest +0 -7
- data/.gemtest +0 -0
- data/.rubocop.yml +0 -27
- data/.togglerc +0 -7
- data/Manifest.txt +0 -166
- data/doc/release_notes/rake-0.4.14.rdoc +0 -23
- data/doc/release_notes/rake-0.4.15.rdoc +0 -35
- data/doc/release_notes/rake-0.5.0.rdoc +0 -53
- data/doc/release_notes/rake-0.5.3.rdoc +0 -78
- data/doc/release_notes/rake-0.5.4.rdoc +0 -46
- data/doc/release_notes/rake-0.6.0.rdoc +0 -141
- data/doc/release_notes/rake-0.7.0.rdoc +0 -119
- data/doc/release_notes/rake-0.7.1.rdoc +0 -59
- data/doc/release_notes/rake-0.7.2.rdoc +0 -121
- data/doc/release_notes/rake-0.7.3.rdoc +0 -47
- data/doc/release_notes/rake-0.8.0.rdoc +0 -114
- data/doc/release_notes/rake-0.8.2.rdoc +0 -165
- data/doc/release_notes/rake-0.8.3.rdoc +0 -112
- data/doc/release_notes/rake-0.8.4.rdoc +0 -147
- data/doc/release_notes/rake-0.8.5.rdoc +0 -53
- data/doc/release_notes/rake-0.8.6.rdoc +0 -37
- data/doc/release_notes/rake-0.8.7.rdoc +0 -55
- data/doc/release_notes/rake-0.9.0.rdoc +0 -112
- data/doc/release_notes/rake-0.9.1.rdoc +0 -52
- data/doc/release_notes/rake-0.9.2.2.rdoc +0 -55
- data/doc/release_notes/rake-0.9.2.rdoc +0 -49
- data/doc/release_notes/rake-0.9.3.rdoc +0 -102
- data/doc/release_notes/rake-0.9.4.rdoc +0 -60
- data/doc/release_notes/rake-0.9.5.rdoc +0 -55
- data/doc/release_notes/rake-0.9.6.rdoc +0 -64
- data/doc/release_notes/rake-10.0.0.rdoc +0 -178
- data/doc/release_notes/rake-10.0.1.rdoc +0 -58
- data/doc/release_notes/rake-10.0.2.rdoc +0 -53
- data/doc/release_notes/rake-10.0.3.rdoc +0 -191
- data/doc/release_notes/rake-10.1.0.rdoc +0 -61
- data/lib/rake/alt_system.rb +0 -110
- data/lib/rake/contrib/.document +0 -1
- data/lib/rake/contrib/compositepublisher.rb +0 -21
- data/lib/rake/contrib/ftptools.rb +0 -137
- data/lib/rake/contrib/publisher.rb +0 -81
- data/lib/rake/contrib/rubyforgepublisher.rb +0 -18
- data/lib/rake/contrib/sshpublisher.rb +0 -61
- data/lib/rake/contrib/sys.rb +0 -4
- data/lib/rake/ext/module.rb +0 -2
- data/lib/rake/ext/pathname.rb +0 -25
- data/lib/rake/ext/time.rb +0 -16
- data/lib/rake/gempackagetask.rb +0 -4
- data/lib/rake/pathmap.rb +0 -3
- data/lib/rake/rdoctask.rb +0 -4
- data/lib/rake/ruby182_test_unit_fix.rb +0 -29
- data/lib/rake/runtest.rb +0 -27
- data/rakelib/publish.rake +0 -20
- data/rakelib/test_times.rake +0 -25
- data/test/file_creation.rb +0 -34
- data/test/helper.rb +0 -130
- data/test/support/rakefile_definitions.rb +0 -478
- data/test/support/ruby_runner.rb +0 -34
- data/test/test_private_reader.rb +0 -42
- data/test/test_rake.rb +0 -40
- data/test/test_rake_application.rb +0 -643
- data/test/test_rake_application_options.rb +0 -466
- data/test/test_rake_backtrace.rb +0 -119
- data/test/test_rake_clean.rb +0 -61
- data/test/test_rake_cpu_counter.rb +0 -68
- data/test/test_rake_definitions.rb +0 -84
- data/test/test_rake_directory_task.rb +0 -76
- data/test/test_rake_dsl.rb +0 -40
- data/test/test_rake_early_time.rb +0 -31
- data/test/test_rake_extension.rb +0 -59
- data/test/test_rake_file_creation_task.rb +0 -56
- data/test/test_rake_file_list.rb +0 -655
- data/test/test_rake_file_list_path_map.rb +0 -8
- data/test/test_rake_file_task.rb +0 -197
- data/test/test_rake_file_utils.rb +0 -309
- data/test/test_rake_ftp_file.rb +0 -74
- data/test/test_rake_functional.rb +0 -482
- data/test/test_rake_invocation_chain.rb +0 -64
- data/test/test_rake_late_time.rb +0 -18
- data/test/test_rake_linked_list.rb +0 -84
- data/test/test_rake_makefile_loader.rb +0 -46
- data/test/test_rake_multi_task.rb +0 -64
- data/test/test_rake_name_space.rb +0 -57
- data/test/test_rake_package_task.rb +0 -79
- data/test/test_rake_path_map.rb +0 -168
- data/test/test_rake_path_map_explode.rb +0 -34
- data/test/test_rake_path_map_partial.rb +0 -18
- data/test/test_rake_pathname_extensions.rb +0 -15
- data/test/test_rake_pseudo_status.rb +0 -21
- data/test/test_rake_rake_test_loader.rb +0 -20
- data/test/test_rake_reduce_compat.rb +0 -26
- data/test/test_rake_require.rb +0 -40
- data/test/test_rake_rules.rb +0 -388
- data/test/test_rake_scope.rb +0 -44
- data/test/test_rake_task.rb +0 -393
- data/test/test_rake_task_argument_parsing.rb +0 -119
- data/test/test_rake_task_arguments.rb +0 -127
- data/test/test_rake_task_lib.rb +0 -9
- data/test/test_rake_task_manager.rb +0 -178
- data/test/test_rake_task_manager_argument_resolution.rb +0 -19
- data/test/test_rake_task_with_arguments.rb +0 -172
- data/test/test_rake_test_task.rb +0 -146
- data/test/test_rake_thread_pool.rb +0 -145
- data/test/test_rake_top_level_functions.rb +0 -71
- data/test/test_rake_win32.rb +0 -72
- data/test/test_thread_history_display.rb +0 -101
- data/test/test_trace_output.rb +0 -52
data/lib/rake/application.rb
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
require
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require "optparse"
|
|
3
3
|
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
7
|
-
require
|
|
8
|
-
require
|
|
9
|
-
require
|
|
4
|
+
require "rake/task_manager"
|
|
5
|
+
require "rake/file_list"
|
|
6
|
+
require "rake/thread_pool"
|
|
7
|
+
require "rake/thread_history_display"
|
|
8
|
+
require "rake/trace_output"
|
|
9
|
+
require "rake/win32"
|
|
10
10
|
|
|
11
11
|
module Rake
|
|
12
12
|
|
|
@@ -35,17 +35,20 @@ module Rake
|
|
|
35
35
|
# List of the top level task names (task names from the command line).
|
|
36
36
|
attr_reader :top_level_tasks
|
|
37
37
|
|
|
38
|
+
# Override the detected TTY output state (mostly for testing)
|
|
39
|
+
attr_writer :tty_output
|
|
40
|
+
|
|
38
41
|
DEFAULT_RAKEFILES = [
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
"rakefile",
|
|
43
|
+
"Rakefile",
|
|
44
|
+
"rakefile.rb",
|
|
45
|
+
"Rakefile.rb"
|
|
43
46
|
].freeze
|
|
44
47
|
|
|
45
48
|
# Initialize a Rake::Application object.
|
|
46
49
|
def initialize
|
|
47
50
|
super
|
|
48
|
-
@name =
|
|
51
|
+
@name = "rake"
|
|
49
52
|
@rakefiles = DEFAULT_RAKEFILES.dup
|
|
50
53
|
@rakefile = nil
|
|
51
54
|
@pending_imports = []
|
|
@@ -54,11 +57,13 @@ module Rake
|
|
|
54
57
|
@default_loader = Rake::DefaultLoader.new
|
|
55
58
|
@original_dir = Dir.pwd
|
|
56
59
|
@top_level_tasks = []
|
|
57
|
-
add_loader(
|
|
58
|
-
add_loader(
|
|
59
|
-
add_loader(
|
|
60
|
+
add_loader("rb", DefaultLoader.new)
|
|
61
|
+
add_loader("rf", DefaultLoader.new)
|
|
62
|
+
add_loader("rake", DefaultLoader.new)
|
|
60
63
|
@tty_output = STDOUT.tty?
|
|
61
|
-
@terminal_columns = ENV[
|
|
64
|
+
@terminal_columns = ENV["RAKE_COLUMNS"].to_i
|
|
65
|
+
|
|
66
|
+
set_default_options
|
|
62
67
|
end
|
|
63
68
|
|
|
64
69
|
# Run the Rake application. The run method performs the following
|
|
@@ -71,19 +76,24 @@ module Rake
|
|
|
71
76
|
# If you wish to build a custom rake command, you should call
|
|
72
77
|
# +init+ on your application. Then define any tasks. Finally,
|
|
73
78
|
# call +top_level+ to run your top level tasks.
|
|
74
|
-
def run
|
|
79
|
+
def run(argv = ARGV)
|
|
75
80
|
standard_exception_handling do
|
|
76
|
-
init
|
|
81
|
+
init "rake", argv
|
|
77
82
|
load_rakefile
|
|
78
83
|
top_level
|
|
79
84
|
end
|
|
80
85
|
end
|
|
81
86
|
|
|
82
87
|
# Initialize the command line parameters and app name.
|
|
83
|
-
def init(app_name=
|
|
88
|
+
def init(app_name="rake", argv = ARGV)
|
|
84
89
|
standard_exception_handling do
|
|
85
90
|
@name = app_name
|
|
86
|
-
|
|
91
|
+
begin
|
|
92
|
+
args = handle_options argv
|
|
93
|
+
rescue ArgumentError
|
|
94
|
+
# Backward compatibility for capistrano
|
|
95
|
+
args = handle_options
|
|
96
|
+
end
|
|
87
97
|
collect_command_line_tasks(args)
|
|
88
98
|
end
|
|
89
99
|
end
|
|
@@ -162,7 +172,7 @@ module Rake
|
|
|
162
172
|
args = []
|
|
163
173
|
|
|
164
174
|
begin
|
|
165
|
-
|
|
175
|
+
/\s*((?:[^\\,]|\\.)*?)\s*(?:,\s*(.*))?$/ =~ remaining_args
|
|
166
176
|
|
|
167
177
|
remaining_args = $2
|
|
168
178
|
args << $1.gsub(/\\(.)/, '\1')
|
|
@@ -186,7 +196,7 @@ module Rake
|
|
|
186
196
|
exit_because_of_exception(ex)
|
|
187
197
|
end
|
|
188
198
|
|
|
189
|
-
# Exit the program because of an
|
|
199
|
+
# Exit the program because of an unhandled exception.
|
|
190
200
|
# (may be overridden by subclasses)
|
|
191
201
|
def exit_because_of_exception(ex) # :nodoc:
|
|
192
202
|
exit(false)
|
|
@@ -202,13 +212,22 @@ module Rake
|
|
|
202
212
|
end
|
|
203
213
|
|
|
204
214
|
def display_exception_details(ex) # :nodoc:
|
|
205
|
-
|
|
206
|
-
return if seen.include? ex
|
|
207
|
-
seen << ex
|
|
215
|
+
display_exception_details_seen << ex
|
|
208
216
|
|
|
209
217
|
display_exception_message_details(ex)
|
|
210
218
|
display_exception_backtrace(ex)
|
|
211
|
-
|
|
219
|
+
display_cause_details(ex.cause) if has_cause?(ex)
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
def display_cause_details(ex) # :nodoc:
|
|
223
|
+
return if display_exception_details_seen.include? ex
|
|
224
|
+
|
|
225
|
+
trace "\nCaused by:"
|
|
226
|
+
display_exception_details(ex)
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
def display_exception_details_seen # :nodoc:
|
|
230
|
+
Thread.current[:rake_display_exception_details_seen] ||= []
|
|
212
231
|
end
|
|
213
232
|
|
|
214
233
|
def has_cause?(ex) # :nodoc:
|
|
@@ -257,7 +276,7 @@ module Rake
|
|
|
257
276
|
if File.exist?(fn)
|
|
258
277
|
others = FileList.glob(fn, File::FNM_CASEFOLD)
|
|
259
278
|
return others.size == 1 ? others.first : fn
|
|
260
|
-
elsif fn ==
|
|
279
|
+
elsif fn == ""
|
|
261
280
|
return fn
|
|
262
281
|
end
|
|
263
282
|
end
|
|
@@ -269,11 +288,6 @@ module Rake
|
|
|
269
288
|
@tty_output
|
|
270
289
|
end
|
|
271
290
|
|
|
272
|
-
# Override the detected TTY output state (mostly for testing)
|
|
273
|
-
def tty_output=(tty_output_state) # :nodoc:
|
|
274
|
-
@tty_output = tty_output_state
|
|
275
|
-
end
|
|
276
|
-
|
|
277
291
|
# We will truncate output if we are outputting to a TTY or if we've been
|
|
278
292
|
# given an explicit column width to honor
|
|
279
293
|
def truncate_output? # :nodoc:
|
|
@@ -345,7 +359,7 @@ module Rake
|
|
|
345
359
|
end
|
|
346
360
|
|
|
347
361
|
def unix? # :nodoc:
|
|
348
|
-
RbConfig::CONFIG[
|
|
362
|
+
RbConfig::CONFIG["host_os"] =~
|
|
349
363
|
/(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i
|
|
350
364
|
end
|
|
351
365
|
|
|
@@ -378,7 +392,7 @@ module Rake
|
|
|
378
392
|
|
|
379
393
|
def sort_options(options) # :nodoc:
|
|
380
394
|
options.sort_by { |opt|
|
|
381
|
-
opt.select { |o| o =~ /^-/ }.map
|
|
395
|
+
opt.select { |o| o.is_a?(String) && o =~ /^-/ }.map(&:downcase).sort.reverse
|
|
382
396
|
}
|
|
383
397
|
end
|
|
384
398
|
private :sort_options
|
|
@@ -388,38 +402,38 @@ module Rake
|
|
|
388
402
|
def standard_rake_options # :nodoc:
|
|
389
403
|
sort_options(
|
|
390
404
|
[
|
|
391
|
-
[
|
|
405
|
+
["--all", "-A",
|
|
392
406
|
"Show all tasks, even uncommented ones (in combination with -T or -D)",
|
|
393
407
|
lambda { |value|
|
|
394
408
|
options.show_all_tasks = value
|
|
395
409
|
}
|
|
396
410
|
],
|
|
397
|
-
[
|
|
411
|
+
["--backtrace=[OUT]",
|
|
398
412
|
"Enable full backtrace. OUT can be stderr (default) or stdout.",
|
|
399
413
|
lambda { |value|
|
|
400
414
|
options.backtrace = true
|
|
401
|
-
select_trace_output(options,
|
|
415
|
+
select_trace_output(options, "backtrace", value)
|
|
402
416
|
}
|
|
403
417
|
],
|
|
404
|
-
[
|
|
418
|
+
["--build-all", "-B",
|
|
405
419
|
"Build all prerequisites, including those which are up-to-date.",
|
|
406
420
|
lambda { |value|
|
|
407
421
|
options.build_all = true
|
|
408
422
|
}
|
|
409
423
|
],
|
|
410
|
-
[
|
|
424
|
+
["--comments",
|
|
411
425
|
"Show commented tasks only",
|
|
412
426
|
lambda { |value|
|
|
413
427
|
options.show_all_tasks = !value
|
|
414
428
|
}
|
|
415
429
|
],
|
|
416
|
-
[
|
|
430
|
+
["--describe", "-D [PATTERN]",
|
|
417
431
|
"Describe the tasks (matching optional PATTERN), then exit.",
|
|
418
432
|
lambda { |value|
|
|
419
433
|
select_tasks_to_show(options, :describe, value)
|
|
420
434
|
}
|
|
421
435
|
],
|
|
422
|
-
[
|
|
436
|
+
["--dry-run", "-n",
|
|
423
437
|
"Do a dry run without executing actions.",
|
|
424
438
|
lambda { |value|
|
|
425
439
|
Rake.verbose(true)
|
|
@@ -428,31 +442,31 @@ module Rake
|
|
|
428
442
|
options.trace = true
|
|
429
443
|
}
|
|
430
444
|
],
|
|
431
|
-
[
|
|
445
|
+
["--execute", "-e CODE",
|
|
432
446
|
"Execute some Ruby code and exit.",
|
|
433
447
|
lambda { |value|
|
|
434
448
|
eval(value)
|
|
435
449
|
exit
|
|
436
450
|
}
|
|
437
451
|
],
|
|
438
|
-
[
|
|
452
|
+
["--execute-print", "-p CODE",
|
|
439
453
|
"Execute some Ruby code, print the result, then exit.",
|
|
440
454
|
lambda { |value|
|
|
441
455
|
puts eval(value)
|
|
442
456
|
exit
|
|
443
457
|
}
|
|
444
458
|
],
|
|
445
|
-
[
|
|
459
|
+
["--execute-continue", "-E CODE",
|
|
446
460
|
"Execute some Ruby code, " +
|
|
447
461
|
"then continue with normal task processing.",
|
|
448
462
|
lambda { |value| eval(value) }
|
|
449
463
|
],
|
|
450
|
-
[
|
|
464
|
+
["--jobs", "-j [NUMBER]",
|
|
451
465
|
"Specifies the maximum number of tasks to execute in parallel. " +
|
|
452
466
|
"(default is number of CPU cores + 4)",
|
|
453
467
|
lambda { |value|
|
|
454
|
-
if value.nil? || value ==
|
|
455
|
-
value =
|
|
468
|
+
if value.nil? || value == ""
|
|
469
|
+
value = Float::INFINITY
|
|
456
470
|
elsif value =~ /^\d+$/
|
|
457
471
|
value = value.to_i
|
|
458
472
|
else
|
|
@@ -462,7 +476,7 @@ module Rake
|
|
|
462
476
|
options.thread_pool_size = value - 1
|
|
463
477
|
}
|
|
464
478
|
],
|
|
465
|
-
[
|
|
479
|
+
["--job-stats [LEVEL]",
|
|
466
480
|
"Display job statistics. " +
|
|
467
481
|
"LEVEL=history displays a complete job list",
|
|
468
482
|
lambda { |value|
|
|
@@ -473,42 +487,42 @@ module Rake
|
|
|
473
487
|
end
|
|
474
488
|
}
|
|
475
489
|
],
|
|
476
|
-
[
|
|
490
|
+
["--libdir", "-I LIBDIR",
|
|
477
491
|
"Include LIBDIR in the search path for required modules.",
|
|
478
492
|
lambda { |value| $:.push(value) }
|
|
479
493
|
],
|
|
480
|
-
[
|
|
494
|
+
["--multitask", "-m",
|
|
481
495
|
"Treat all tasks as multitasks.",
|
|
482
496
|
lambda { |value| options.always_multitask = true }
|
|
483
497
|
],
|
|
484
|
-
[
|
|
485
|
-
|
|
498
|
+
["--no-search", "--nosearch",
|
|
499
|
+
"-N", "Do not search parent directories for the Rakefile.",
|
|
486
500
|
lambda { |value| options.nosearch = true }
|
|
487
501
|
],
|
|
488
|
-
[
|
|
502
|
+
["--prereqs", "-P",
|
|
489
503
|
"Display the tasks and dependencies, then exit.",
|
|
490
504
|
lambda { |value| options.show_prereqs = true }
|
|
491
505
|
],
|
|
492
|
-
[
|
|
506
|
+
["--quiet", "-q",
|
|
493
507
|
"Do not log messages to standard output.",
|
|
494
508
|
lambda { |value| Rake.verbose(false) }
|
|
495
509
|
],
|
|
496
|
-
[
|
|
510
|
+
["--rakefile", "-f [FILENAME]",
|
|
497
511
|
"Use FILENAME as the rakefile to search for.",
|
|
498
512
|
lambda { |value|
|
|
499
|
-
value ||=
|
|
513
|
+
value ||= ""
|
|
500
514
|
@rakefiles.clear
|
|
501
515
|
@rakefiles << value
|
|
502
516
|
}
|
|
503
517
|
],
|
|
504
|
-
[
|
|
518
|
+
["--rakelibdir", "--rakelib", "-R RAKELIBDIR",
|
|
505
519
|
"Auto-import any .rake files in RAKELIBDIR. " +
|
|
506
520
|
"(default is 'rakelib')",
|
|
507
521
|
lambda { |value|
|
|
508
522
|
options.rakelib = value.split(File::PATH_SEPARATOR)
|
|
509
523
|
}
|
|
510
524
|
],
|
|
511
|
-
[
|
|
525
|
+
["--require", "-r MODULE",
|
|
512
526
|
"Require MODULE before executing rakefile.",
|
|
513
527
|
lambda { |value|
|
|
514
528
|
begin
|
|
@@ -522,11 +536,11 @@ module Rake
|
|
|
522
536
|
end
|
|
523
537
|
}
|
|
524
538
|
],
|
|
525
|
-
[
|
|
539
|
+
["--rules",
|
|
526
540
|
"Trace the rules resolution.",
|
|
527
541
|
lambda { |value| options.trace_rules = true }
|
|
528
542
|
],
|
|
529
|
-
[
|
|
543
|
+
["--silent", "-s",
|
|
530
544
|
"Like --quiet, but also suppresses the " +
|
|
531
545
|
"'in directory' announcement.",
|
|
532
546
|
lambda { |value|
|
|
@@ -534,59 +548,60 @@ module Rake
|
|
|
534
548
|
options.silent = true
|
|
535
549
|
}
|
|
536
550
|
],
|
|
537
|
-
[
|
|
551
|
+
["--suppress-backtrace PATTERN",
|
|
538
552
|
"Suppress backtrace lines matching regexp PATTERN. " +
|
|
539
553
|
"Ignored if --trace is on.",
|
|
540
554
|
lambda { |value|
|
|
541
555
|
options.suppress_backtrace_pattern = Regexp.new(value)
|
|
542
556
|
}
|
|
543
557
|
],
|
|
544
|
-
[
|
|
558
|
+
["--system", "-g",
|
|
545
559
|
"Using system wide (global) rakefiles " +
|
|
546
560
|
"(usually '~/.rake/*.rake').",
|
|
547
561
|
lambda { |value| options.load_system = true }
|
|
548
562
|
],
|
|
549
|
-
[
|
|
563
|
+
["--no-system", "--nosystem", "-G",
|
|
550
564
|
"Use standard project Rakefile search paths, " +
|
|
551
565
|
"ignore system wide rakefiles.",
|
|
552
566
|
lambda { |value| options.ignore_system = true }
|
|
553
567
|
],
|
|
554
|
-
[
|
|
568
|
+
["--tasks", "-T [PATTERN]",
|
|
555
569
|
"Display the tasks (matching optional PATTERN) " +
|
|
556
|
-
"with descriptions, then exit."
|
|
570
|
+
"with descriptions, then exit. " +
|
|
571
|
+
"-AT combination displays all of tasks contained no description.",
|
|
557
572
|
lambda { |value|
|
|
558
573
|
select_tasks_to_show(options, :tasks, value)
|
|
559
574
|
}
|
|
560
575
|
],
|
|
561
|
-
[
|
|
576
|
+
["--trace=[OUT]", "-t",
|
|
562
577
|
"Turn on invoke/execute tracing, enable full backtrace. " +
|
|
563
578
|
"OUT can be stderr (default) or stdout.",
|
|
564
579
|
lambda { |value|
|
|
565
580
|
options.trace = true
|
|
566
581
|
options.backtrace = true
|
|
567
|
-
select_trace_output(options,
|
|
582
|
+
select_trace_output(options, "trace", value)
|
|
568
583
|
Rake.verbose(true)
|
|
569
584
|
}
|
|
570
585
|
],
|
|
571
|
-
[
|
|
586
|
+
["--verbose", "-v",
|
|
572
587
|
"Log message to standard output.",
|
|
573
588
|
lambda { |value| Rake.verbose(true) }
|
|
574
589
|
],
|
|
575
|
-
[
|
|
590
|
+
["--version", "-V",
|
|
576
591
|
"Display the program version.",
|
|
577
592
|
lambda { |value|
|
|
578
|
-
puts "rake, version #{
|
|
593
|
+
puts "rake, version #{Rake::VERSION}"
|
|
579
594
|
exit
|
|
580
595
|
}
|
|
581
596
|
],
|
|
582
|
-
[
|
|
597
|
+
["--where", "-W [PATTERN]",
|
|
583
598
|
"Describe the tasks (matching optional PATTERN), then exit.",
|
|
584
599
|
lambda { |value|
|
|
585
600
|
select_tasks_to_show(options, :lines, value)
|
|
586
601
|
options.show_all_tasks = true
|
|
587
602
|
}
|
|
588
603
|
],
|
|
589
|
-
[
|
|
604
|
+
["--no-deprecation-warnings", "-X",
|
|
590
605
|
"Disable the deprecation warnings.",
|
|
591
606
|
lambda { |value|
|
|
592
607
|
options.ignore_deprecate = true
|
|
@@ -597,7 +612,7 @@ module Rake
|
|
|
597
612
|
|
|
598
613
|
def select_tasks_to_show(options, show_tasks, value) # :nodoc:
|
|
599
614
|
options.show_tasks = show_tasks
|
|
600
|
-
options.show_task_pattern = Regexp.new(value ||
|
|
615
|
+
options.show_task_pattern = Regexp.new(value || "")
|
|
601
616
|
Rake::TaskManager.record_task_metadata = true
|
|
602
617
|
end
|
|
603
618
|
private :select_tasks_to_show
|
|
@@ -605,9 +620,9 @@ module Rake
|
|
|
605
620
|
def select_trace_output(options, trace_option, value) # :nodoc:
|
|
606
621
|
value = value.strip unless value.nil?
|
|
607
622
|
case value
|
|
608
|
-
when
|
|
623
|
+
when "stdout"
|
|
609
624
|
options.trace_output = $stdout
|
|
610
|
-
when
|
|
625
|
+
when "stderr", nil
|
|
611
626
|
options.trace_output = $stderr
|
|
612
627
|
else
|
|
613
628
|
fail CommandLineOptionError,
|
|
@@ -619,9 +634,8 @@ module Rake
|
|
|
619
634
|
# Read and handle the command line options. Returns the command line
|
|
620
635
|
# arguments that we didn't understand, which should (in theory) be just
|
|
621
636
|
# task names and env vars.
|
|
622
|
-
def handle_options # :nodoc:
|
|
623
|
-
|
|
624
|
-
options.trace_output = $stderr
|
|
637
|
+
def handle_options(argv) # :nodoc:
|
|
638
|
+
set_default_options
|
|
625
639
|
|
|
626
640
|
OptionParser.new do |opts|
|
|
627
641
|
opts.banner = "#{Rake.application.name} [-f rakefile] {options} targets..."
|
|
@@ -634,8 +648,8 @@ module Rake
|
|
|
634
648
|
end
|
|
635
649
|
|
|
636
650
|
standard_rake_options.each { |args| opts.on(*args) }
|
|
637
|
-
opts.environment(
|
|
638
|
-
end.parse(
|
|
651
|
+
opts.environment("RAKEOPT")
|
|
652
|
+
end.parse(argv)
|
|
639
653
|
end
|
|
640
654
|
|
|
641
655
|
# Similar to the regular Ruby +require+ command, but will check
|
|
@@ -673,7 +687,7 @@ module Rake
|
|
|
673
687
|
|
|
674
688
|
def raw_load_rakefile # :nodoc:
|
|
675
689
|
rakefile, location = find_rakefile_location
|
|
676
|
-
if (!
|
|
690
|
+
if (!options.ignore_system) &&
|
|
677
691
|
(options.load_system || rakefile.nil?) &&
|
|
678
692
|
system_dir && File.directory?(system_dir)
|
|
679
693
|
print_rakefile_directory(location)
|
|
@@ -687,7 +701,7 @@ module Rake
|
|
|
687
701
|
Dir.chdir(location)
|
|
688
702
|
print_rakefile_directory(location)
|
|
689
703
|
Rake.load_rakefile(File.expand_path(@rakefile)) if
|
|
690
|
-
@rakefile && @rakefile !=
|
|
704
|
+
@rakefile && @rakefile != ""
|
|
691
705
|
options.rakelib.each do |rlib|
|
|
692
706
|
glob("#{rlib}/*.rake") do |name|
|
|
693
707
|
add_import name
|
|
@@ -698,7 +712,7 @@ module Rake
|
|
|
698
712
|
end
|
|
699
713
|
|
|
700
714
|
def glob(path, &block) # :nodoc:
|
|
701
|
-
FileList.glob(path.
|
|
715
|
+
FileList.glob(path.tr("\\", "/")).each(&block)
|
|
702
716
|
end
|
|
703
717
|
private :glob
|
|
704
718
|
|
|
@@ -706,8 +720,8 @@ module Rake
|
|
|
706
720
|
def system_dir # :nodoc:
|
|
707
721
|
@system_dir ||=
|
|
708
722
|
begin
|
|
709
|
-
if ENV[
|
|
710
|
-
ENV[
|
|
723
|
+
if ENV["RAKE_SYSTEM"]
|
|
724
|
+
ENV["RAKE_SYSTEM"]
|
|
711
725
|
else
|
|
712
726
|
standard_system_dir
|
|
713
727
|
end
|
|
@@ -721,7 +735,7 @@ module Rake
|
|
|
721
735
|
end
|
|
722
736
|
else
|
|
723
737
|
def standard_system_dir #:nodoc:
|
|
724
|
-
File.join(File.expand_path(
|
|
738
|
+
File.join(File.expand_path("~"), ".rake")
|
|
725
739
|
end
|
|
726
740
|
end
|
|
727
741
|
private :standard_system_dir
|
|
@@ -780,11 +794,31 @@ module Rake
|
|
|
780
794
|
re = /^#{@rakefile}$/
|
|
781
795
|
re = /#{re.source}/i if windows?
|
|
782
796
|
|
|
783
|
-
backtrace.find { |str| str =~ re } ||
|
|
797
|
+
backtrace.find { |str| str =~ re } || ""
|
|
798
|
+
end
|
|
799
|
+
|
|
800
|
+
def set_default_options # :nodoc:
|
|
801
|
+
options.always_multitask = false
|
|
802
|
+
options.backtrace = false
|
|
803
|
+
options.build_all = false
|
|
804
|
+
options.dryrun = false
|
|
805
|
+
options.ignore_deprecate = false
|
|
806
|
+
options.ignore_system = false
|
|
807
|
+
options.job_stats = false
|
|
808
|
+
options.load_system = false
|
|
809
|
+
options.nosearch = false
|
|
810
|
+
options.rakelib = %w[rakelib]
|
|
811
|
+
options.show_all_tasks = false
|
|
812
|
+
options.show_prereqs = false
|
|
813
|
+
options.show_task_pattern = nil
|
|
814
|
+
options.show_tasks = nil
|
|
815
|
+
options.silent = false
|
|
816
|
+
options.suppress_backtrace_pattern = nil
|
|
817
|
+
options.thread_pool_size = Rake.suggested_thread_count
|
|
818
|
+
options.trace = false
|
|
819
|
+
options.trace_output = $stderr
|
|
820
|
+
options.trace_rules = false
|
|
784
821
|
end
|
|
785
822
|
|
|
786
|
-
private
|
|
787
|
-
FIXNUM_MAX = (2**(0.size * 8 - 2) - 1) # :nodoc:
|
|
788
|
-
|
|
789
823
|
end
|
|
790
824
|
end
|