rake 13.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/macos.yml +22 -0
  3. data/.github/workflows/ubuntu-rvm.yml +28 -0
  4. data/.github/workflows/ubuntu.yml +20 -0
  5. data/.github/workflows/windows.yml +20 -0
  6. data/CONTRIBUTING.rdoc +43 -0
  7. data/Gemfile +10 -0
  8. data/History.rdoc +2359 -0
  9. data/MIT-LICENSE +21 -0
  10. data/README.rdoc +155 -0
  11. data/Rakefile +41 -0
  12. data/bin/bundle +105 -0
  13. data/bin/console +7 -0
  14. data/bin/rake +29 -0
  15. data/bin/rdoc +29 -0
  16. data/bin/rubocop +29 -0
  17. data/bin/setup +6 -0
  18. data/doc/command_line_usage.rdoc +158 -0
  19. data/doc/example/Rakefile1 +38 -0
  20. data/doc/example/Rakefile2 +35 -0
  21. data/doc/example/a.c +6 -0
  22. data/doc/example/b.c +6 -0
  23. data/doc/example/main.c +11 -0
  24. data/doc/glossary.rdoc +42 -0
  25. data/doc/jamis.rb +592 -0
  26. data/doc/proto_rake.rdoc +127 -0
  27. data/doc/rake.1 +156 -0
  28. data/doc/rakefile.rdoc +622 -0
  29. data/doc/rational.rdoc +151 -0
  30. data/exe/rake +27 -0
  31. data/lib/rake.rb +71 -0
  32. data/lib/rake/application.rb +824 -0
  33. data/lib/rake/backtrace.rb +24 -0
  34. data/lib/rake/clean.rb +78 -0
  35. data/lib/rake/cloneable.rb +17 -0
  36. data/lib/rake/cpu_counter.rb +107 -0
  37. data/lib/rake/default_loader.rb +15 -0
  38. data/lib/rake/dsl_definition.rb +195 -0
  39. data/lib/rake/early_time.rb +22 -0
  40. data/lib/rake/ext/core.rb +26 -0
  41. data/lib/rake/ext/string.rb +176 -0
  42. data/lib/rake/file_creation_task.rb +25 -0
  43. data/lib/rake/file_list.rb +435 -0
  44. data/lib/rake/file_task.rb +54 -0
  45. data/lib/rake/file_utils.rb +134 -0
  46. data/lib/rake/file_utils_ext.rb +134 -0
  47. data/lib/rake/invocation_chain.rb +57 -0
  48. data/lib/rake/invocation_exception_mixin.rb +17 -0
  49. data/lib/rake/late_time.rb +18 -0
  50. data/lib/rake/linked_list.rb +112 -0
  51. data/lib/rake/loaders/makefile.rb +54 -0
  52. data/lib/rake/multi_task.rb +14 -0
  53. data/lib/rake/name_space.rb +38 -0
  54. data/lib/rake/packagetask.rb +222 -0
  55. data/lib/rake/phony.rb +16 -0
  56. data/lib/rake/private_reader.rb +21 -0
  57. data/lib/rake/promise.rb +100 -0
  58. data/lib/rake/pseudo_status.rb +30 -0
  59. data/lib/rake/rake_module.rb +67 -0
  60. data/lib/rake/rake_test_loader.rb +27 -0
  61. data/lib/rake/rule_recursion_overflow_error.rb +20 -0
  62. data/lib/rake/scope.rb +43 -0
  63. data/lib/rake/task.rb +433 -0
  64. data/lib/rake/task_argument_error.rb +8 -0
  65. data/lib/rake/task_arguments.rb +109 -0
  66. data/lib/rake/task_manager.rb +328 -0
  67. data/lib/rake/tasklib.rb +12 -0
  68. data/lib/rake/testtask.rb +224 -0
  69. data/lib/rake/thread_history_display.rb +49 -0
  70. data/lib/rake/thread_pool.rb +163 -0
  71. data/lib/rake/trace_output.rb +23 -0
  72. data/lib/rake/version.rb +10 -0
  73. data/lib/rake/win32.rb +51 -0
  74. data/rake.gemspec +36 -0
  75. metadata +132 -0
@@ -0,0 +1,21 @@
1
+ Copyright (c) Jim Weirich
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
@@ -0,0 +1,155 @@
1
+ = RAKE -- Ruby Make
2
+
3
+ home :: https://github.com/ruby/rake
4
+ bugs :: https://github.com/ruby/rake/issues
5
+ docs :: https://ruby.github.io/rake
6
+
7
+ == Description
8
+
9
+ Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
10
+ specified in standard Ruby syntax.
11
+
12
+ Rake has the following features:
13
+
14
+ * Rakefiles (rake's version of Makefiles) are completely defined in
15
+ standard Ruby syntax. No XML files to edit. No quirky Makefile
16
+ syntax to worry about (is that a tab or a space?)
17
+
18
+ * Users can specify tasks with prerequisites.
19
+
20
+ * Rake supports rule patterns to synthesize implicit tasks.
21
+
22
+ * Flexible FileLists that act like arrays but know about manipulating
23
+ file names and paths.
24
+
25
+ * A library of prepackaged tasks to make building rakefiles easier. For example,
26
+ tasks for building tarballs. (Formerly
27
+ tasks for building RDoc, Gems, and publishing to FTP were included in rake but they're now
28
+ available in RDoc, RubyGems, and rake-contrib respectively.)
29
+
30
+ * Supports parallel execution of tasks.
31
+
32
+ == Installation
33
+
34
+ === Gem Installation
35
+
36
+ Download and install rake with the following.
37
+
38
+ gem install rake
39
+
40
+ == Usage
41
+
42
+ === Simple Example
43
+
44
+ First, you must write a "Rakefile" file which contains the build rules. Here's
45
+ a simple example:
46
+
47
+ task default: %w[test]
48
+
49
+ task :test do
50
+ ruby "test/unittest.rb"
51
+ end
52
+
53
+ This Rakefile has two tasks:
54
+
55
+ * A task named "test", which -- upon invocation -- will run a unit test file
56
+ in Ruby.
57
+ * A task named "default". This task does nothing by itself, but it has exactly
58
+ one dependency, namely the "test" task. Invoking the "default" task will
59
+ cause Rake to invoke the "test" task as well.
60
+
61
+ Running the "rake" command without any options will cause it to run the
62
+ "default" task in the Rakefile:
63
+
64
+ % ls
65
+ Rakefile test/
66
+ % rake
67
+ (in /home/some_user/Projects/rake)
68
+ ruby test/unittest.rb
69
+ ....unit test output here...
70
+
71
+ Type "rake --help" for all available options.
72
+
73
+ == Resources
74
+
75
+ === Rake Information
76
+
77
+ * {Rake command-line}[link:doc/command_line_usage.rdoc]
78
+ * {Writing Rakefiles}[link:doc/rakefile.rdoc]
79
+ * The original {Rake announcement}[link:doc/rational.rdoc]
80
+ * Rake {glossary}[link:doc/glossary.rdoc]
81
+
82
+ === Presentations and Articles about Rake
83
+
84
+ * Avdi Grimm's rake series:
85
+ 1. {Rake Basics}[http://devblog.avdi.org/2014/04/21/rake-part-1-basics/]
86
+ 2. {Rake File Lists}[http://devblog.avdi.org/2014/04/22/rake-part-2-file-lists/]
87
+ 3. {Rake Rules}[http://devblog.avdi.org/2014/04/23/rake-part-3-rules/]
88
+ 4. {Rake Pathmap}[http://devblog.avdi.org/2014/04/24/rake-part-4-pathmap/]
89
+ 5. {File Operations}[http://devblog.avdi.org/2014/04/25/rake-part-5-file-operations/]
90
+ 6. {Clean and Clobber}[http://devblog.avdi.org/2014/04/28/rake-part-6-clean-and-clobber/]
91
+ 7. {MultiTask}[http://devblog.avdi.org/2014/04/29/rake-part-7-multitask/]
92
+ * {Jim Weirich's 2003 RubyConf presentation}[http://web.archive.org/web/20140221123354/http://onestepback.org/articles/buildingwithrake/]
93
+ * Martin Fowler's article on Rake: http://martinfowler.com/articles/rake.html
94
+
95
+ == Other Make Re-envisionings ...
96
+
97
+ Rake is a late entry in the make replacement field. Here are links to
98
+ other projects with similar (and not so similar) goals.
99
+
100
+ * http://directory.fsf.org/wiki/Bras -- Bras, one of earliest
101
+ implementations of "make in a scripting language".
102
+ * http://www.a-a-p.org -- Make in Python
103
+ * http://ant.apache.org -- The Ant project
104
+ * http://search.cpan.org/search?query=PerlBuildSystem -- The Perl Build System
105
+ * http://www.rubydoc.info/gems/rant/0.5.7/frames -- Rant, another Ruby make tool.
106
+
107
+ == Credits
108
+
109
+ [<b>Jim Weirich</b>] Who originally created Rake.
110
+
111
+ [<b>Ryan Dlugosz</b>] For the initial conversation that sparked Rake.
112
+
113
+ [<b>Nobuyoshi Nakada <nobu@ruby-lang.org></b>] For the initial patch for rule support.
114
+
115
+ [<b>Tilman Sauerbeck <tilman@code-monkey.de></b>] For the recursive rule patch.
116
+
117
+ [<b>Eric Hodel</b>] For aid in maintaining rake.
118
+
119
+ [<b>Hiroshi SHIBATA</b>] Maintainer of Rake 10.X and Rake 11.X
120
+
121
+ == License
122
+
123
+ Rake is available under an MIT-style license.
124
+
125
+ :include: MIT-LICENSE
126
+
127
+ ---
128
+
129
+ = Other stuff
130
+
131
+ Author:: Jim Weirich <jim.weirich@gmail.com>
132
+ Requires:: Ruby 2.0.0 or later
133
+ License:: Copyright Jim Weirich.
134
+ Released under an MIT-style license. See the MIT-LICENSE
135
+ file included in the distribution.
136
+
137
+ == Warranty
138
+
139
+ This software is provided "as is" and without any express or implied
140
+ warranties, including, without limitation, the implied warranties of
141
+ merchantability and fitness for a particular purpose.
142
+
143
+ == Historical
144
+
145
+ Rake was originally created by Jim Weirich, who unfortunately passed away in
146
+ February 2014. This repository was originally hosted at
147
+ {github.com/jimweirich/rake}[https://github.com/jimweirich/rake/], however
148
+ with his passing, has been moved to {ruby/rake}[https://github.com/ruby/rake].
149
+
150
+ You can view Jim's last commit here:
151
+ https://github.com/jimweirich/rake/tree/336559f28f55bce418e2ebcc0a57548dcbac4025
152
+
153
+ You can {read more about Jim}[https://en.wikipedia.org/wiki/Jim_Weirich] at Wikipedia.
154
+
155
+ Thank you for this great tool, Jim. We'll remember you.
@@ -0,0 +1,41 @@
1
+ # Rakefile for rake -*- ruby -*-
2
+
3
+ # Copyright 2003, 2004, 2005 by Jim Weirich (jim@weirichhouse.org)
4
+ # All rights reserved.
5
+
6
+ # This file may be distributed under an MIT style license. See
7
+ # MIT-LICENSE for details.
8
+
9
+ lib = File.expand_path("../lib", __FILE__)
10
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
11
+
12
+ begin
13
+ require "bundler/gem_tasks"
14
+ rescue LoadError
15
+ end
16
+
17
+ require "rake/testtask"
18
+ Rake::TestTask.new(:test) do |t|
19
+ t.libs << "test"
20
+ t.verbose = true
21
+ t.test_files = FileList["test/**/test_*.rb"]
22
+ end
23
+
24
+ require "rdoc/task"
25
+ RDoc::Task.new do |doc|
26
+ doc.main = "README.rdoc"
27
+ doc.title = "Rake -- Ruby Make"
28
+ doc.rdoc_files = FileList.new %w[lib MIT-LICENSE doc/**/*.rdoc *.rdoc]
29
+ doc.rdoc_dir = "html"
30
+ end
31
+
32
+ task ghpages: :rdoc do
33
+ %x[git checkout gh-pages]
34
+ require "fileutils"
35
+ FileUtils.rm_rf "/tmp/html"
36
+ FileUtils.mv "html", "/tmp"
37
+ FileUtils.rm_rf "*"
38
+ FileUtils.cp_r Dir.glob("/tmp/html/*"), "."
39
+ end
40
+
41
+ task default: :test
@@ -0,0 +1,105 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'bundle' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "rubygems"
12
+
13
+ m = Module.new do
14
+ module_function
15
+
16
+ def invoked_as_script?
17
+ File.expand_path($0) == File.expand_path(__FILE__)
18
+ end
19
+
20
+ def env_var_version
21
+ ENV["BUNDLER_VERSION"]
22
+ end
23
+
24
+ def cli_arg_version
25
+ return unless invoked_as_script? # don't want to hijack other binstubs
26
+ return unless "update".start_with?(ARGV.first || " ") # must be running `bundle update`
27
+ bundler_version = nil
28
+ update_index = nil
29
+ ARGV.each_with_index do |a, i|
30
+ if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN
31
+ bundler_version = a
32
+ end
33
+ next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/
34
+ bundler_version = $1 || ">= 0.a"
35
+ update_index = i
36
+ end
37
+ bundler_version
38
+ end
39
+
40
+ def gemfile
41
+ gemfile = ENV["BUNDLE_GEMFILE"]
42
+ return gemfile if gemfile && !gemfile.empty?
43
+
44
+ File.expand_path("../../Gemfile", __FILE__)
45
+ end
46
+
47
+ def lockfile
48
+ lockfile =
49
+ case File.basename(gemfile)
50
+ when "gems.rb" then gemfile.sub(/\.rb$/, gemfile)
51
+ else "#{gemfile}.lock"
52
+ end
53
+ File.expand_path(lockfile)
54
+ end
55
+
56
+ def lockfile_version
57
+ return unless File.file?(lockfile)
58
+ lockfile_contents = File.read(lockfile)
59
+ return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/
60
+ Regexp.last_match(1)
61
+ end
62
+
63
+ def bundler_version
64
+ @bundler_version ||= begin
65
+ env_var_version || cli_arg_version ||
66
+ lockfile_version || "#{Gem::Requirement.default}.a"
67
+ end
68
+ end
69
+
70
+ def load_bundler!
71
+ ENV["BUNDLE_GEMFILE"] ||= gemfile
72
+
73
+ # must dup string for RG < 1.8 compatibility
74
+ activate_bundler(bundler_version.dup)
75
+ end
76
+
77
+ def activate_bundler(bundler_version)
78
+ if Gem::Version.correct?(bundler_version) && Gem::Version.new(bundler_version).release < Gem::Version.new("2.0")
79
+ bundler_version = "< 2"
80
+ end
81
+ gem_error = activation_error_handling do
82
+ gem "bundler", bundler_version
83
+ end
84
+ return if gem_error.nil?
85
+ require_error = activation_error_handling do
86
+ require "bundler/version"
87
+ end
88
+ return if require_error.nil? && Gem::Requirement.new(bundler_version).satisfied_by?(Gem::Version.new(Bundler::VERSION))
89
+ warn "Activating bundler (#{bundler_version}) failed:\n#{gem_error.message}\n\nTo install the version of bundler this project requires, run `gem install bundler -v '#{bundler_version}'`"
90
+ exit 42
91
+ end
92
+
93
+ def activation_error_handling
94
+ yield
95
+ nil
96
+ rescue StandardError, LoadError => e
97
+ e
98
+ end
99
+ end
100
+
101
+ m.load_bundler!
102
+
103
+ if m.invoked_as_script?
104
+ load Gem.bin_path("bundler", "bundle")
105
+ end
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "rake"
5
+
6
+ require "irb"
7
+ IRB.start
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rake' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rake", "rake")
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rdoc' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rdoc", "rdoc")
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rubocop' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require "pathname"
12
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require "rubygems"
27
+ require "bundler/setup"
28
+
29
+ load Gem.bin_path("rubocop", "rubocop")
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
@@ -0,0 +1,158 @@
1
+ = Rake Command Line Usage
2
+
3
+ Rake is invoked from the command line using:
4
+
5
+ % rake [options ...] [VAR=VALUE ...] [targets ...]
6
+
7
+ Options are:
8
+
9
+ [<tt><em>name</em>=<em>value</em></tt>]
10
+ Set the environment variable <em>name</em> to <em>value</em>
11
+ during the execution of the <b>rake</b> command. You can access
12
+ the value by using ENV['<em>name</em>'].
13
+
14
+ [<tt>--all</tt> (-A)]
15
+ Used in combination with the -T and -D options, will force
16
+ those options to show all the tasks, even the ones without comments.
17
+
18
+ [<tt>--backtrace</tt>{=_output_} (-n)]
19
+ Enable a full backtrace (i.e. like --trace, but without the task
20
+ tracing details). The _output_ parameter is optional, but if
21
+ specified it controls where the backtrace output is sent. If
22
+ _output_ is <tt>stdout</tt>, then backtrace output is directed to
23
+ standard output. If _output_ is <tt>stderr</tt>, or if it is
24
+ missing, then the backtrace output is sent to standard error.
25
+
26
+ [<tt>--comments</tt>]
27
+ Used in combination with the -W options to force the output to
28
+ contain commented options only. This is the reverse of
29
+ <tt>--all</tt>.
30
+
31
+ [<tt>--describe</tt> _pattern_ (-D)]
32
+ Describe the tasks (matching optional PATTERN), then exit.
33
+
34
+ [<tt>--dry-run</tt> (-n)]
35
+ Do a dry run. Print the tasks invoked and executed, but do not
36
+ actually execute any of the actions.
37
+
38
+ [<tt>--execute</tt> _code_ (-e)]
39
+ Execute some Ruby code and exit.
40
+
41
+ [<tt>--execute-print</tt> _code_ (-p)]
42
+ Execute some Ruby code, print the result, and exit.
43
+
44
+ [<tt>--execute-continue</tt> _code_ (-E)]
45
+ Execute some Ruby code, then continue with normal task processing.
46
+
47
+ [<tt>--help</tt> (-H)]
48
+ Display some help text and exit.
49
+
50
+ [<tt>--jobs</tt> _number_ (-j)]
51
+
52
+ Specifies the maximum number of concurrent threads allowed. Rake
53
+ will allocate threads as needed up to this maximum number.
54
+
55
+ If omitted, Rake will attempt to estimate the number of CPUs on
56
+ the system and add 4 to that number.
57
+
58
+ The concurrent threads are used to execute the <tt>multitask</tt>
59
+ prerequisites. Also see the <tt>-m</tt> option which turns all
60
+ tasks into multitasks.
61
+
62
+ Sample values:
63
+ (no -j) : Allow up to (# of CPUs + 4) number of threads
64
+ --jobs : Allow unlimited number of threads
65
+ --jobs=1 : Allow only one thread (the main thread)
66
+ --jobs=16 : Allow up to 16 concurrent threads
67
+
68
+ [<tt>--job-stats</tt> _level_]
69
+
70
+ Display job statistics at the completion of the run. By default,
71
+ this will display the requested number of active threads (from the
72
+ -j options) and the maximum number of threads in play at any given
73
+ time.
74
+
75
+ If the optional _level_ is <tt>history</tt>, then a complete trace
76
+ of task history will be displayed on standard output.
77
+
78
+ [<tt>--libdir</tt> _directory_ (-I)]
79
+ Add _directory_ to the list of directories searched for require.
80
+
81
+ [<tt>--multitask</tt> (-m)]
82
+ Treat all tasks as multitasks. ('make/drake' semantics)
83
+
84
+ [<tt>--nosearch</tt> (-N)]
85
+ Do not search for a Rakefile in parent directories.
86
+
87
+ [<tt>--prereqs</tt> (-P)]
88
+ Display a list of all tasks and their immediate prerequisites.
89
+
90
+ [<tt>--quiet</tt> (-q)]
91
+ Do not echo commands from FileUtils.
92
+
93
+ [<tt>--rakefile</tt> _filename_ (-f)]
94
+ Use _filename_ as the name of the rakefile. The default rakefile
95
+ names are +rakefile+ and +Rakefile+ (with +rakefile+ taking
96
+ precedence). If the rakefile is not found in the current
97
+ directory, +rake+ will search parent directories for a match. The
98
+ directory where the Rakefile is found will become the current
99
+ directory for the actions executed in the Rakefile.
100
+
101
+ [<tt>--rakelibdir</tt> _rakelibdir_ (-R)]
102
+ Auto-import any .rake files in RAKELIBDIR. (default is 'rakelib')
103
+
104
+ [<tt>--require</tt> _name_ (-r)]
105
+ Require _name_ before executing the Rakefile.
106
+
107
+ [<tt>--rules</tt>]
108
+ Trace the rules resolution.
109
+
110
+ [<tt>--silent (-s)</tt>]
111
+ Like --quiet, but also suppresses the 'in directory' announcement.
112
+
113
+ [<tt>--suppress-backtrace _pattern_ </tt>]
114
+ Line matching the regular expression _pattern_ will be removed
115
+ from the backtrace output. Note that the --backtrace option is the
116
+ full backtrace without these lines suppressed.
117
+
118
+ [<tt>--system</tt> (-g)]
119
+ Use the system wide (global) rakefiles. The project Rakefile is
120
+ ignored. By default, the system wide rakefiles are used only if no
121
+ project Rakefile is found. On Unix-like system, the system wide
122
+ rake files are located in $HOME/.rake. On a windows system they
123
+ are stored in $APPDATA/Rake.
124
+
125
+ [<tt>--no-system</tt> (-G)]
126
+ Use the project level Rakefile, ignoring the system-wide (global)
127
+ rakefiles.
128
+
129
+ [<tt>--tasks</tt> <em>pattern</em> (-T)]
130
+ Display a list of the major tasks and their comments. Comments
131
+ are defined using the "desc" command. If a pattern is given, then
132
+ only tasks matching the pattern are displayed.
133
+
134
+ [<tt>--trace</tt>{=_output_} (-t)]
135
+ Turn on invoke/execute tracing. Also enable full backtrace on
136
+ errors. The _output_ parameter is optional, but if specified it
137
+ controls where the trace output is sent. If _output_ is
138
+ <tt>stdout</tt>, then trace output is directed to standard output.
139
+ If _output_ is <tt>stderr</tt>, or if it is missing, then trace
140
+ output is sent to standard error.
141
+
142
+ [<tt>--verbose</tt> (-v)]
143
+ Echo the Sys commands to standard output.
144
+
145
+ [<tt>--version</tt> (-V)]
146
+ Display the program version and exit.
147
+
148
+ [<tt>--where</tt> <em>pattern</em> (-W)]
149
+ Display tasks that match <em>pattern</em> and the file and line
150
+ number where the task is defined. By default this option will
151
+ display all tasks, not just the tasks that have descriptions.
152
+
153
+ [<tt>--no-deprecation-warnings</tt> (-X)]
154
+ Do not display the deprecation warnings.
155
+
156
+ In addition, any command line option of the form
157
+ <em>VAR</em>=<em>VALUE</em> will be added to the environment hash
158
+ <tt>ENV</tt> and may be tested in the Rakefile.