vergissberlin 0.0.9 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/lib/vergissberlin/version.rb +1 -1
  3. data/test/cases/version_case.rb +26 -0
  4. data/test/rest_spec.rb +12 -0
  5. data/test/suites/suite_test.rb +12 -0
  6. data/test/utils.rb +13 -0
  7. metadata +83 -134
  8. data/.gitignore +0 -17
  9. data/.travis.yml +0 -7
  10. data/Gemfile +0 -4
  11. data/LICENSE.txt +0 -22
  12. data/Rakefile +0 -10
  13. data/test/test_test.rb +0 -5
  14. data/test/version_test.rb +0 -12
  15. data/vendor/bundle/bin/rake +0 -23
  16. data/vendor/bundle/bin/vergissberlin +0 -23
  17. data/vendor/bundle/build_info/capistrano_colors-0.5.5.info +0 -1
  18. data/vendor/bundle/build_info/rake-10.0.4.info +0 -1
  19. data/vendor/bundle/gems/capistrano_colors-0.5.5/Manifest +0 -7
  20. data/vendor/bundle/gems/capistrano_colors-0.5.5/README.rdoc +0 -130
  21. data/vendor/bundle/gems/capistrano_colors-0.5.5/Rakefile +0 -1
  22. data/vendor/bundle/gems/capistrano_colors-0.5.5/capistrano_colors.gemspec +0 -33
  23. data/vendor/bundle/gems/capistrano_colors-0.5.5/lib/capistrano_colors/configuration.rb +0 -70
  24. data/vendor/bundle/gems/capistrano_colors-0.5.5/lib/capistrano_colors/logger.rb +0 -72
  25. data/vendor/bundle/gems/capistrano_colors-0.5.5/lib/capistrano_colors.rb +0 -18
  26. data/vendor/bundle/gems/rake-10.0.4/CHANGES +0 -530
  27. data/vendor/bundle/gems/rake-10.0.4/MIT-LICENSE +0 -21
  28. data/vendor/bundle/gems/rake-10.0.4/README.rdoc +0 -187
  29. data/vendor/bundle/gems/rake-10.0.4/Rakefile +0 -375
  30. data/vendor/bundle/gems/rake-10.0.4/TODO +0 -21
  31. data/vendor/bundle/gems/rake-10.0.4/bin/rake +0 -33
  32. data/vendor/bundle/gems/rake-10.0.4/install.rb +0 -90
  33. data/vendor/bundle/gems/rake-10.0.4/lib/rake/alt_system.rb +0 -109
  34. data/vendor/bundle/gems/rake-10.0.4/lib/rake/application.rb +0 -681
  35. data/vendor/bundle/gems/rake-10.0.4/lib/rake/backtrace.rb +0 -19
  36. data/vendor/bundle/gems/rake-10.0.4/lib/rake/clean.rb +0 -32
  37. data/vendor/bundle/gems/rake-10.0.4/lib/rake/cloneable.rb +0 -16
  38. data/vendor/bundle/gems/rake-10.0.4/lib/rake/contrib/compositepublisher.rb +0 -21
  39. data/vendor/bundle/gems/rake-10.0.4/lib/rake/contrib/ftptools.rb +0 -151
  40. data/vendor/bundle/gems/rake-10.0.4/lib/rake/contrib/publisher.rb +0 -73
  41. data/vendor/bundle/gems/rake-10.0.4/lib/rake/contrib/rubyforgepublisher.rb +0 -16
  42. data/vendor/bundle/gems/rake-10.0.4/lib/rake/contrib/sshpublisher.rb +0 -50
  43. data/vendor/bundle/gems/rake-10.0.4/lib/rake/contrib/sys.rb +0 -1
  44. data/vendor/bundle/gems/rake-10.0.4/lib/rake/default_loader.rb +0 -10
  45. data/vendor/bundle/gems/rake-10.0.4/lib/rake/dsl_definition.rb +0 -156
  46. data/vendor/bundle/gems/rake-10.0.4/lib/rake/early_time.rb +0 -18
  47. data/vendor/bundle/gems/rake-10.0.4/lib/rake/ext/core.rb +0 -27
  48. data/vendor/bundle/gems/rake-10.0.4/lib/rake/ext/module.rb +0 -0
  49. data/vendor/bundle/gems/rake-10.0.4/lib/rake/ext/string.rb +0 -168
  50. data/vendor/bundle/gems/rake-10.0.4/lib/rake/ext/time.rb +0 -15
  51. data/vendor/bundle/gems/rake-10.0.4/lib/rake/file_creation_task.rb +0 -24
  52. data/vendor/bundle/gems/rake-10.0.4/lib/rake/file_list.rb +0 -410
  53. data/vendor/bundle/gems/rake-10.0.4/lib/rake/file_task.rb +0 -47
  54. data/vendor/bundle/gems/rake-10.0.4/lib/rake/file_utils.rb +0 -114
  55. data/vendor/bundle/gems/rake-10.0.4/lib/rake/file_utils_ext.rb +0 -143
  56. data/vendor/bundle/gems/rake-10.0.4/lib/rake/gempackagetask.rb +0 -1
  57. data/vendor/bundle/gems/rake-10.0.4/lib/rake/invocation_chain.rb +0 -51
  58. data/vendor/bundle/gems/rake-10.0.4/lib/rake/invocation_exception_mixin.rb +0 -16
  59. data/vendor/bundle/gems/rake-10.0.4/lib/rake/loaders/makefile.rb +0 -40
  60. data/vendor/bundle/gems/rake-10.0.4/lib/rake/multi_task.rb +0 -13
  61. data/vendor/bundle/gems/rake-10.0.4/lib/rake/name_space.rb +0 -25
  62. data/vendor/bundle/gems/rake-10.0.4/lib/rake/packagetask.rb +0 -185
  63. data/vendor/bundle/gems/rake-10.0.4/lib/rake/pathmap.rb +0 -1
  64. data/vendor/bundle/gems/rake-10.0.4/lib/rake/phony.rb +0 -15
  65. data/vendor/bundle/gems/rake-10.0.4/lib/rake/private_reader.rb +0 -20
  66. data/vendor/bundle/gems/rake-10.0.4/lib/rake/promise.rb +0 -99
  67. data/vendor/bundle/gems/rake-10.0.4/lib/rake/pseudo_status.rb +0 -24
  68. data/vendor/bundle/gems/rake-10.0.4/lib/rake/rake_module.rb +0 -37
  69. data/vendor/bundle/gems/rake-10.0.4/lib/rake/rake_test_loader.rb +0 -22
  70. data/vendor/bundle/gems/rake-10.0.4/lib/rake/rdoctask.rb +0 -1
  71. data/vendor/bundle/gems/rake-10.0.4/lib/rake/ruby182_test_unit_fix.rb +0 -25
  72. data/vendor/bundle/gems/rake-10.0.4/lib/rake/rule_recursion_overflow_error.rb +0 -20
  73. data/vendor/bundle/gems/rake-10.0.4/lib/rake/runtest.rb +0 -22
  74. data/vendor/bundle/gems/rake-10.0.4/lib/rake/task.rb +0 -368
  75. data/vendor/bundle/gems/rake-10.0.4/lib/rake/task_argument_error.rb +0 -7
  76. data/vendor/bundle/gems/rake-10.0.4/lib/rake/task_arguments.rb +0 -78
  77. data/vendor/bundle/gems/rake-10.0.4/lib/rake/task_manager.rb +0 -296
  78. data/vendor/bundle/gems/rake-10.0.4/lib/rake/tasklib.rb +0 -22
  79. data/vendor/bundle/gems/rake-10.0.4/lib/rake/testtask.rb +0 -198
  80. data/vendor/bundle/gems/rake-10.0.4/lib/rake/thread_history_display.rb +0 -48
  81. data/vendor/bundle/gems/rake-10.0.4/lib/rake/thread_pool.rb +0 -155
  82. data/vendor/bundle/gems/rake-10.0.4/lib/rake/trace_output.rb +0 -22
  83. data/vendor/bundle/gems/rake-10.0.4/lib/rake/version.rb +0 -13
  84. data/vendor/bundle/gems/rake-10.0.4/lib/rake/win32.rb +0 -55
  85. data/vendor/bundle/gems/rake-10.0.4/lib/rake.rb +0 -71
  86. data/vendor/bundle/gems/rake-10.0.4/test/file_creation.rb +0 -34
  87. data/vendor/bundle/gems/rake-10.0.4/test/helper.rb +0 -562
  88. data/vendor/bundle/gems/rake-10.0.4/test/test_private_reader.rb +0 -42
  89. data/vendor/bundle/gems/rake-10.0.4/test/test_rake.rb +0 -40
  90. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_application.rb +0 -515
  91. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_application_options.rb +0 -455
  92. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_backtrace.rb +0 -89
  93. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_clean.rb +0 -14
  94. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_definitions.rb +0 -80
  95. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_directory_task.rb +0 -57
  96. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_dsl.rb +0 -40
  97. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_early_time.rb +0 -31
  98. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_extension.rb +0 -59
  99. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_file_creation_task.rb +0 -56
  100. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_file_list.rb +0 -628
  101. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_file_list_path_map.rb +0 -8
  102. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_file_task.rb +0 -122
  103. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_file_utils.rb +0 -305
  104. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_ftp_file.rb +0 -59
  105. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_functional.rb +0 -496
  106. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_invocation_chain.rb +0 -52
  107. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_makefile_loader.rb +0 -44
  108. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_multi_task.rb +0 -59
  109. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_name_space.rb +0 -43
  110. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_package_task.rb +0 -79
  111. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_path_map.rb +0 -157
  112. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_path_map_explode.rb +0 -34
  113. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_path_map_partial.rb +0 -18
  114. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_pseudo_status.rb +0 -21
  115. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_rake_test_loader.rb +0 -21
  116. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_reduce_compat.rb +0 -30
  117. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_require.rb +0 -40
  118. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_rules.rb +0 -327
  119. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_task.rb +0 -340
  120. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_task_argument_parsing.rb +0 -103
  121. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_task_arguments.rb +0 -88
  122. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_task_lib.rb +0 -9
  123. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_task_manager.rb +0 -157
  124. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_task_manager_argument_resolution.rb +0 -19
  125. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_task_with_arguments.rb +0 -171
  126. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_test_task.rb +0 -120
  127. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_thread_pool.rb +0 -122
  128. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_top_level_functions.rb +0 -71
  129. data/vendor/bundle/gems/rake-10.0.4/test/test_rake_win32.rb +0 -72
  130. data/vendor/bundle/gems/rake-10.0.4/test/test_thread_history_display.rb +0 -91
  131. data/vendor/bundle/gems/rake-10.0.4/test/test_trace_output.rb +0 -50
  132. data/vendor/bundle/specifications/capistrano_colors-0.5.5.gemspec +0 -32
  133. data/vendor/bundle/specifications/rake-10.0.4.gemspec +0 -35
  134. data/vergissberlin.gemspec +0 -26
@@ -1,681 +0,0 @@
1
- require 'shellwords'
2
- require 'optparse'
3
-
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
-
11
- module Rake
12
-
13
- CommandLineOptionError = Class.new(StandardError)
14
-
15
- ######################################################################
16
- # Rake main application object. When invoking +rake+ from the
17
- # command line, a Rake::Application object is created and run.
18
- #
19
- class Application
20
- include TaskManager
21
- include TraceOutput
22
-
23
- # The name of the application (typically 'rake')
24
- attr_reader :name
25
-
26
- # The original directory where rake was invoked.
27
- attr_reader :original_dir
28
-
29
- # Name of the actual rakefile used.
30
- attr_reader :rakefile
31
-
32
- # Number of columns on the terminal
33
- attr_accessor :terminal_columns
34
-
35
- # List of the top level task names (task names from the command line).
36
- attr_reader :top_level_tasks
37
-
38
- DEFAULT_RAKEFILES = ['rakefile', 'Rakefile', 'rakefile.rb', 'Rakefile.rb'].freeze
39
-
40
- # Initialize a Rake::Application object.
41
- def initialize
42
- super
43
- @name = 'rake'
44
- @rakefiles = DEFAULT_RAKEFILES.dup
45
- @rakefile = nil
46
- @pending_imports = []
47
- @imported = []
48
- @loaders = {}
49
- @default_loader = Rake::DefaultLoader.new
50
- @original_dir = Dir.pwd
51
- @top_level_tasks = []
52
- add_loader('rb', DefaultLoader.new)
53
- add_loader('rf', DefaultLoader.new)
54
- add_loader('rake', DefaultLoader.new)
55
- @tty_output = STDOUT.tty?
56
- @terminal_columns = ENV['RAKE_COLUMNS'].to_i
57
- end
58
-
59
- # Run the Rake application. The run method performs the following
60
- # three steps:
61
- #
62
- # * Initialize the command line options (+init+).
63
- # * Define the tasks (+load_rakefile+).
64
- # * Run the top level tasks (+top_level+).
65
- #
66
- # If you wish to build a custom rake command, you should call
67
- # +init+ on your application. Then define any tasks. Finally,
68
- # call +top_level+ to run your top level tasks.
69
- def run
70
- standard_exception_handling do
71
- init
72
- load_rakefile
73
- top_level
74
- end
75
- end
76
-
77
- # Initialize the command line parameters and app name.
78
- def init(app_name='rake')
79
- standard_exception_handling do
80
- @name = app_name
81
- handle_options
82
- collect_tasks
83
- end
84
- end
85
-
86
- # Find the rakefile and then load it and any pending imports.
87
- def load_rakefile
88
- standard_exception_handling do
89
- raw_load_rakefile
90
- end
91
- end
92
-
93
- # Run the top level tasks of a Rake application.
94
- def top_level
95
- run_with_threads do
96
- if options.show_tasks
97
- display_tasks_and_comments
98
- elsif options.show_prereqs
99
- display_prerequisites
100
- else
101
- top_level_tasks.each { |task_name| invoke_task(task_name) }
102
- end
103
- end
104
- end
105
-
106
- # Run the given block with the thread startup and shutdown.
107
- def run_with_threads
108
- thread_pool.gather_history if options.job_stats == :history
109
-
110
- yield
111
-
112
- thread_pool.join
113
- if options.job_stats
114
- stats = thread_pool.statistics
115
- puts "Maximum active threads: #{stats[:max_active_threads]}"
116
- puts "Total threads in play: #{stats[:total_threads_in_play]}"
117
- end
118
- ThreadHistoryDisplay.new(thread_pool.history).show if options.job_stats == :history
119
- end
120
-
121
- # Add a loader to handle imported files ending in the extension
122
- # +ext+.
123
- def add_loader(ext, loader)
124
- ext = ".#{ext}" unless ext =~ /^\./
125
- @loaders[ext] = loader
126
- end
127
-
128
- # Application options from the command line
129
- def options
130
- @options ||= OpenStruct.new
131
- end
132
-
133
- # Return the thread pool used for multithreaded processing.
134
- def thread_pool # :nodoc:
135
- @thread_pool ||= ThreadPool.new(options.thread_pool_size||FIXNUM_MAX)
136
- end
137
-
138
- # private ----------------------------------------------------------------
139
-
140
- def invoke_task(task_string)
141
- name, args = parse_task_string(task_string)
142
- t = self[name]
143
- t.invoke(*args)
144
- end
145
-
146
- def parse_task_string(string)
147
- if string =~ /^([^\[]+)(\[(.*)\])$/
148
- name = $1
149
- args = $3.split(/\s*,\s*/)
150
- else
151
- name = string
152
- args = []
153
- end
154
- [name, args]
155
- end
156
-
157
- # Provide standard exception handling for the given block.
158
- def standard_exception_handling
159
- begin
160
- yield
161
- rescue SystemExit => ex
162
- # Exit silently with current status
163
- raise
164
- rescue OptionParser::InvalidOption => ex
165
- $stderr.puts ex.message
166
- exit(false)
167
- rescue Exception => ex
168
- # Exit with error message
169
- display_error_message(ex)
170
- exit_because_of_exception(ex)
171
- end
172
- end
173
-
174
- # Exit the program because of an unhandle exception.
175
- # (may be overridden by subclasses)
176
- def exit_because_of_exception(ex)
177
- exit(false)
178
- end
179
-
180
- # Display the error message that caused the exception.
181
- def display_error_message(ex)
182
- trace "#{name} aborted!"
183
- trace ex.message
184
- if options.backtrace
185
- trace ex.backtrace.join("\n")
186
- else
187
- trace Backtrace.collapse(ex.backtrace).join("\n")
188
- end
189
- trace "Tasks: #{ex.chain}" if has_chain?(ex)
190
- trace "(See full trace by running task with --trace)" unless options.backtrace
191
- end
192
-
193
- # Warn about deprecated usage.
194
- #
195
- # Example:
196
- # Rake.application.deprecate("import", "Rake.import", caller.first)
197
- #
198
- def deprecate(old_usage, new_usage, call_site)
199
- unless options.ignore_deprecate
200
- $stderr.puts "WARNING: '#{old_usage}' is deprecated. " +
201
- "Please use '#{new_usage}' instead.\n" +
202
- " at #{call_site}"
203
- end
204
- end
205
-
206
- # Does the exception have a task invocation chain?
207
- def has_chain?(exception)
208
- exception.respond_to?(:chain) && exception.chain
209
- end
210
- private :has_chain?
211
-
212
- # True if one of the files in RAKEFILES is in the current directory.
213
- # If a match is found, it is copied into @rakefile.
214
- def have_rakefile
215
- @rakefiles.each do |fn|
216
- if File.exist?(fn)
217
- others = FileList.glob(fn, File::FNM_CASEFOLD)
218
- return others.size == 1 ? others.first : fn
219
- elsif fn == ''
220
- return fn
221
- end
222
- end
223
- return nil
224
- end
225
-
226
- # True if we are outputting to TTY, false otherwise
227
- def tty_output?
228
- @tty_output
229
- end
230
-
231
- # Override the detected TTY output state (mostly for testing)
232
- def tty_output=( tty_output_state )
233
- @tty_output = tty_output_state
234
- end
235
-
236
- # We will truncate output if we are outputting to a TTY or if we've been
237
- # given an explicit column width to honor
238
- def truncate_output?
239
- tty_output? || @terminal_columns.nonzero?
240
- end
241
-
242
- # Display the tasks and comments.
243
- def display_tasks_and_comments
244
- displayable_tasks = tasks.select { |t|
245
- (options.show_all_tasks || t.comment) && t.name =~ options.show_task_pattern
246
- }
247
- case options.show_tasks
248
- when :tasks
249
- width = displayable_tasks.collect { |t| t.name_with_args.length }.max || 10
250
- max_column = truncate_output? ? terminal_width - name.size - width - 7 : nil
251
-
252
- displayable_tasks.each do |t|
253
- printf "#{name} %-#{width}s # %s\n",
254
- t.name_with_args, max_column ? truncate(t.comment, max_column) : t.comment
255
- end
256
- when :describe
257
- displayable_tasks.each do |t|
258
- puts "#{name} #{t.name_with_args}"
259
- comment = t.full_comment || ""
260
- comment.split("\n").each do |line|
261
- puts " #{line}"
262
- end
263
- puts
264
- end
265
- when :lines
266
- displayable_tasks.each do |t|
267
- t.locations.each do |loc|
268
- printf "#{name} %-30s %s\n",t.name_with_args, loc
269
- end
270
- end
271
- else
272
- fail "Unknown show task mode: '#{options.show_tasks}'"
273
- end
274
- end
275
-
276
- def terminal_width
277
- if @terminal_columns.nonzero?
278
- result = @terminal_columns
279
- else
280
- result = unix? ? dynamic_width : 80
281
- end
282
- (result < 10) ? 80 : result
283
- rescue
284
- 80
285
- end
286
-
287
- # Calculate the dynamic width of the
288
- def dynamic_width
289
- @dynamic_width ||= (dynamic_width_stty.nonzero? || dynamic_width_tput)
290
- end
291
-
292
- def dynamic_width_stty
293
- %x{stty size 2>/dev/null}.split[1].to_i
294
- end
295
-
296
- def dynamic_width_tput
297
- %x{tput cols 2>/dev/null}.to_i
298
- end
299
-
300
- def unix?
301
- RbConfig::CONFIG['host_os'] =~ /(aix|darwin|linux|(net|free|open)bsd|cygwin|solaris|irix|hpux)/i
302
- end
303
-
304
- def windows?
305
- Win32.windows?
306
- end
307
-
308
- def truncate(string, width)
309
- if string.nil?
310
- ""
311
- elsif string.length <= width
312
- string
313
- else
314
- ( string[0, width-3] || "" ) + "..."
315
- end
316
- end
317
-
318
- # Display the tasks and prerequisites
319
- def display_prerequisites
320
- tasks.each do |t|
321
- puts "#{name} #{t.name}"
322
- t.prerequisites.each { |pre| puts " #{pre}" }
323
- end
324
- end
325
-
326
- def trace(*strings)
327
- options.trace_output ||= $stderr
328
- trace_on(options.trace_output, *strings)
329
- end
330
-
331
- def sort_options(options)
332
- options.sort_by { |opt|
333
- opt.select { |o| o =~ /^-/ }.map { |o| o.downcase }.sort.reverse
334
- }
335
- end
336
- private :sort_options
337
-
338
- # A list of all the standard options used in rake, suitable for
339
- # passing to OptionParser.
340
- def standard_rake_options
341
- sort_options(
342
- [
343
- ['--all', '-A', "Show all tasks, even uncommented ones",
344
- lambda { |value|
345
- options.show_all_tasks = value
346
- }
347
- ],
348
- ['--backtrace=[OUT]', "Enable full backtrace. OUT can be stderr (default) or stdout.",
349
- lambda { |value|
350
- options.backtrace = true
351
- select_trace_output(options, 'backtrace', value)
352
- }
353
- ],
354
- ['--comments', "Show commented tasks only",
355
- lambda { |value|
356
- options.show_all_tasks = !value
357
- }
358
- ],
359
- ['--describe', '-D [PATTERN]', "Describe the tasks (matching optional PATTERN), then exit.",
360
- lambda { |value|
361
- select_tasks_to_show(options, :describe, value)
362
- }
363
- ],
364
- ['--dry-run', '-n', "Do a dry run without executing actions.",
365
- lambda { |value|
366
- Rake.verbose(true)
367
- Rake.nowrite(true)
368
- options.dryrun = true
369
- options.trace = true
370
- }
371
- ],
372
- ['--execute', '-e CODE', "Execute some Ruby code and exit.",
373
- lambda { |value|
374
- eval(value)
375
- exit
376
- }
377
- ],
378
- ['--execute-print', '-p CODE', "Execute some Ruby code, print the result, then exit.",
379
- lambda { |value|
380
- puts eval(value)
381
- exit
382
- }
383
- ],
384
- ['--execute-continue', '-E CODE',
385
- "Execute some Ruby code, then continue with normal task processing.",
386
- lambda { |value| eval(value) }
387
- ],
388
- ['--jobs', '-j [NUMBER]',
389
- "Specifies the maximum number of tasks to execute in parallel. (default:2)",
390
- lambda { |value| options.thread_pool_size = [(value || 2).to_i,2].max }
391
- ],
392
- ['--job-stats [LEVEL]',
393
- "Display job statistics. LEVEL=history displays a complete job list",
394
- lambda { |value|
395
- if value =~ /^history/i
396
- options.job_stats = :history
397
- else
398
- options.job_stats = true
399
- end
400
- }
401
- ],
402
- ['--libdir', '-I LIBDIR', "Include LIBDIR in the search path for required modules.",
403
- lambda { |value| $:.push(value) }
404
- ],
405
- ['--multitask', '-m', "Treat all tasks as multitasks.",
406
- lambda { |value| options.always_multitask = true }
407
- ],
408
- ['--no-search', '--nosearch', '-N', "Do not search parent directories for the Rakefile.",
409
- lambda { |value| options.nosearch = true }
410
- ],
411
- ['--prereqs', '-P', "Display the tasks and dependencies, then exit.",
412
- lambda { |value| options.show_prereqs = true }
413
- ],
414
- ['--quiet', '-q', "Do not log messages to standard output.",
415
- lambda { |value| Rake.verbose(false) }
416
- ],
417
- ['--rakefile', '-f [FILE]', "Use FILE as the rakefile.",
418
- lambda { |value|
419
- value ||= ''
420
- @rakefiles.clear
421
- @rakefiles << value
422
- }
423
- ],
424
- ['--rakelibdir', '--rakelib', '-R RAKELIBDIR',
425
- "Auto-import any .rake files in RAKELIBDIR. (default is 'rakelib')",
426
- lambda { |value| options.rakelib = value.split(File::PATH_SEPARATOR) }
427
- ],
428
- ['--require', '-r MODULE', "Require MODULE before executing rakefile.",
429
- lambda { |value|
430
- begin
431
- require value
432
- rescue LoadError => ex
433
- begin
434
- rake_require value
435
- rescue LoadError
436
- raise ex
437
- end
438
- end
439
- }
440
- ],
441
- ['--rules', "Trace the rules resolution.",
442
- lambda { |value| options.trace_rules = true }
443
- ],
444
- ['--silent', '-s', "Like --quiet, but also suppresses the 'in directory' announcement.",
445
- lambda { |value|
446
- Rake.verbose(false)
447
- options.silent = true
448
- }
449
- ],
450
- ['--suppress-backtrace PATTERN', "Suppress backtrace lines matching regexp PATTERN. Ignored if --trace is on.",
451
- lambda { |value|
452
- options.suppress_backtrace_pattern = Regexp.new(value)
453
- }
454
- ],
455
- ['--system', '-g',
456
- "Using system wide (global) rakefiles (usually '~/.rake/*.rake').",
457
- lambda { |value| options.load_system = true }
458
- ],
459
- ['--no-system', '--nosystem', '-G',
460
- "Use standard project Rakefile search paths, ignore system wide rakefiles.",
461
- lambda { |value| options.ignore_system = true }
462
- ],
463
- ['--tasks', '-T [PATTERN]', "Display the tasks (matching optional PATTERN) with descriptions, then exit.",
464
- lambda { |value|
465
- select_tasks_to_show(options, :tasks, value)
466
- }
467
- ],
468
- ['--trace=[OUT]', '-t', "Turn on invoke/execute tracing, enable full backtrace. OUT can be stderr (default) or stdout.",
469
- lambda { |value|
470
- options.trace = true
471
- options.backtrace = true
472
- select_trace_output(options, 'trace', value)
473
- Rake.verbose(true)
474
- }
475
- ],
476
- ['--verbose', '-v', "Log message to standard output.",
477
- lambda { |value| Rake.verbose(true) }
478
- ],
479
- ['--version', '-V', "Display the program version.",
480
- lambda { |value|
481
- puts "rake, version #{RAKEVERSION}"
482
- exit
483
- }
484
- ],
485
- ['--where', '-W [PATTERN]', "Describe the tasks (matching optional PATTERN), then exit.",
486
- lambda { |value|
487
- select_tasks_to_show(options, :lines, value)
488
- options.show_all_tasks = true
489
- }
490
- ],
491
- ['--no-deprecation-warnings', '-X', "Disable the deprecation warnings.",
492
- lambda { |value|
493
- options.ignore_deprecate = true
494
- }
495
- ],
496
- ])
497
- end
498
-
499
- def select_tasks_to_show(options, show_tasks, value)
500
- options.show_tasks = show_tasks
501
- options.show_task_pattern = Regexp.new(value || '')
502
- Rake::TaskManager.record_task_metadata = true
503
- end
504
- private :select_tasks_to_show
505
-
506
- def select_trace_output(options, trace_option, value)
507
- value = value.strip unless value.nil?
508
- case value
509
- when 'stdout'
510
- options.trace_output = $stdout
511
- when 'stderr', nil
512
- options.trace_output = $stderr
513
- else
514
- fail CommandLineOptionError, "Unrecognized --#{trace_option} option '#{value}'"
515
- end
516
- end
517
- private :select_trace_output
518
-
519
- # Read and handle the command line options.
520
- def handle_options
521
- options.rakelib = ['rakelib']
522
- options.trace_output = $stderr
523
-
524
- OptionParser.new do |opts|
525
- opts.banner = "rake [-f rakefile] {options} targets..."
526
- opts.separator ""
527
- opts.separator "Options are ..."
528
-
529
- opts.on_tail("-h", "--help", "-H", "Display this help message.") do
530
- puts opts
531
- exit
532
- end
533
-
534
- standard_rake_options.each { |args| opts.on(*args) }
535
- opts.environment('RAKEOPT')
536
- end.parse!
537
- end
538
-
539
- # Similar to the regular Ruby +require+ command, but will check
540
- # for *.rake files in addition to *.rb files.
541
- def rake_require(file_name, paths=$LOAD_PATH, loaded=$")
542
- fn = file_name + ".rake"
543
- return false if loaded.include?(fn)
544
- paths.each do |path|
545
- full_path = File.join(path, fn)
546
- if File.exist?(full_path)
547
- Rake.load_rakefile(full_path)
548
- loaded << fn
549
- return true
550
- end
551
- end
552
- fail LoadError, "Can't find #{file_name}"
553
- end
554
-
555
- def find_rakefile_location
556
- here = Dir.pwd
557
- while ! (fn = have_rakefile)
558
- Dir.chdir("..")
559
- if Dir.pwd == here || options.nosearch
560
- return nil
561
- end
562
- here = Dir.pwd
563
- end
564
- [fn, here]
565
- ensure
566
- Dir.chdir(Rake.original_dir)
567
- end
568
-
569
- def print_rakefile_directory(location)
570
- $stderr.puts "(in #{Dir.pwd})" unless
571
- options.silent or original_dir == location
572
- end
573
-
574
- def raw_load_rakefile # :nodoc:
575
- rakefile, location = find_rakefile_location
576
- if (! options.ignore_system) &&
577
- (options.load_system || rakefile.nil?) &&
578
- system_dir && File.directory?(system_dir)
579
- print_rakefile_directory(location)
580
- glob("#{system_dir}/*.rake") do |name|
581
- add_import name
582
- end
583
- else
584
- fail "No Rakefile found (looking for: #{@rakefiles.join(', ')})" if
585
- rakefile.nil?
586
- @rakefile = rakefile
587
- Dir.chdir(location)
588
- print_rakefile_directory(location)
589
- Rake.load_rakefile(File.expand_path(@rakefile)) if @rakefile && @rakefile != ''
590
- options.rakelib.each do |rlib|
591
- glob("#{rlib}/*.rake") do |name|
592
- add_import name
593
- end
594
- end
595
- end
596
- load_imports
597
- end
598
-
599
- def glob(path, &block)
600
- FileList.glob(path.gsub("\\", '/')).each(&block)
601
- end
602
- private :glob
603
-
604
- # The directory path containing the system wide rakefiles.
605
- def system_dir
606
- @system_dir ||=
607
- begin
608
- if ENV['RAKE_SYSTEM']
609
- ENV['RAKE_SYSTEM']
610
- else
611
- standard_system_dir
612
- end
613
- end
614
- end
615
-
616
- # The standard directory containing system wide rake files.
617
- if Win32.windows?
618
- def standard_system_dir #:nodoc:
619
- Win32.win32_system_dir
620
- end
621
- else
622
- def standard_system_dir #:nodoc:
623
- File.join(File.expand_path('~'), '.rake')
624
- end
625
- end
626
- private :standard_system_dir
627
-
628
- # Collect the list of tasks on the command line. If no tasks are
629
- # given, return a list containing only the default task.
630
- # Environmental assignments are processed at this time as well.
631
- def collect_tasks
632
- @top_level_tasks = []
633
- ARGV.each do |arg|
634
- if arg =~ /^(\w+)=(.*)$/m
635
- ENV[$1] = $2
636
- else
637
- @top_level_tasks << arg unless arg =~ /^-/
638
- end
639
- end
640
- @top_level_tasks.push(default_task_name) if @top_level_tasks.empty?
641
- end
642
-
643
- # Default task name ("default").
644
- # (May be overridden by subclasses)
645
- def default_task_name
646
- "default"
647
- end
648
-
649
- # Add a file to the list of files to be imported.
650
- def add_import(fn)
651
- @pending_imports << fn
652
- end
653
-
654
- # Load the pending list of imported files.
655
- def load_imports
656
- while fn = @pending_imports.shift
657
- next if @imported.member?(fn)
658
- if fn_task = lookup(fn)
659
- fn_task.invoke
660
- end
661
- ext = File.extname(fn)
662
- loader = @loaders[ext] || @default_loader
663
- loader.load(fn)
664
- @imported << fn
665
- end
666
- end
667
-
668
- def rakefile_location(backtrace=caller)
669
- backtrace.map { |t| t[/([^:]+):/,1] }
670
-
671
- re = /^#{@rakefile}$/
672
- re = /#{re.source}/i if windows?
673
-
674
- backtrace.find { |str| str =~ re } || ''
675
- end
676
-
677
- private
678
- FIXNUM_MAX = (2**(0.size * 8 - 2) - 1) # :nodoc:
679
-
680
- end
681
- end
@@ -1,19 +0,0 @@
1
- module Rake
2
- module Backtrace
3
- SUPPRESSED_PATHS =
4
- RbConfig::CONFIG.values_at(*RbConfig::CONFIG.
5
- keys.grep(/(prefix|libdir)/)).uniq + [
6
- File.join(File.dirname(__FILE__), ".."),
7
- ].map { |f| Regexp.quote(File.expand_path(f)) }
8
- SUPPRESSED_PATHS.map! { |s| s.gsub("\\", "/") }
9
- SUPPRESSED_PATHS.reject! { |s| s.nil? || s =~ /^ *$/ }
10
-
11
- SUPPRESS_PATTERN = %r!(\A#{SUPPRESSED_PATHS.join('|')}|bin/rake:\d+)!i
12
-
13
- def self.collapse(backtrace)
14
- pattern = Rake.application.options.suppress_backtrace_pattern ||
15
- SUPPRESS_PATTERN
16
- backtrace.reject { |elem| elem =~ pattern }
17
- end
18
- end
19
- end