buildr 1.3.5-x86-mswin32 → 1.4.0-x86-mswin32
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.
- data/CHANGELOG +153 -8
- data/README.rdoc +1 -1
- data/addon/buildr/antlr.rb +5 -5
- data/addon/buildr/drb.rb +18 -18
- data/addon/buildr/hibernate.rb +18 -14
- data/addon/buildr/javacc.rb +4 -4
- data/addon/buildr/jetty.rb +5 -5
- data/addon/buildr/nailgun.rb +23 -23
- data/addon/buildr/openjpa.rb +1 -1
- data/addon/buildr/org/apache/buildr/BuildrNail$Main.class +0 -0
- data/addon/buildr/org/apache/buildr/BuildrNail.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper$1.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper$BuildrHandler.class +0 -0
- data/addon/buildr/org/apache/buildr/JettyWrapper.class +0 -0
- data/addon/buildr/protobuf.rb +75 -0
- data/addon/buildr/xmlbeans.rb +5 -5
- data/buildr.buildfile +2 -2
- data/buildr.gemspec +8 -7
- data/doc/_layouts/default.html +2 -2
- data/doc/artifacts.textile +4 -4
- data/doc/building.textile +35 -3
- data/doc/contributing.textile +5 -0
- data/doc/download.textile +16 -5
- data/doc/extending.textile +38 -12
- data/doc/installing.textile +6 -5
- data/doc/languages.textile +182 -42
- data/doc/more_stuff.textile +2 -2
- data/doc/packaging.textile +14 -15
- data/doc/projects.textile +7 -2
- data/doc/quick_start.textile +4 -4
- data/doc/scripts/buildr-git.rb +63 -63
- data/doc/scripts/gitflow.rb +21 -21
- data/doc/settings_profiles.textile +9 -2
- data/doc/testing.textile +16 -5
- data/etc/KEYS +38 -0
- data/lib/buildr.rb +1 -1
- data/lib/buildr/core.rb +1 -0
- data/lib/buildr/core/application.rb +33 -27
- data/lib/buildr/core/build.rb +41 -28
- data/lib/buildr/core/cc.rb +172 -0
- data/lib/buildr/core/checks.rb +1 -1
- data/lib/buildr/core/common.rb +7 -6
- data/lib/buildr/core/compile.rb +7 -8
- data/lib/buildr/core/doc.rb +263 -0
- data/lib/buildr/core/environment.rb +6 -6
- data/lib/buildr/core/filter.rb +77 -35
- data/lib/buildr/core/generate.rb +7 -7
- data/lib/buildr/core/help.rb +1 -1
- data/lib/buildr/core/osx.rb +6 -6
- data/lib/buildr/core/progressbar.rb +4 -4
- data/lib/buildr/core/project.rb +144 -36
- data/lib/buildr/core/shell.rb +34 -34
- data/lib/buildr/core/test.rb +89 -20
- data/lib/buildr/core/transports.rb +8 -7
- data/lib/buildr/core/util.rb +77 -23
- data/lib/buildr/groovy/bdd.rb +5 -5
- data/lib/buildr/groovy/compiler.rb +19 -15
- data/lib/buildr/groovy/shell.rb +6 -6
- data/lib/buildr/ide/eclipse.rb +148 -75
- data/lib/buildr/ide/eclipse/java.rb +3 -3
- data/lib/buildr/ide/eclipse/plugin.rb +8 -5
- data/lib/buildr/ide/eclipse/scala.rb +4 -2
- data/lib/buildr/ide/idea.rb +2 -2
- data/lib/buildr/ide/idea7x.rb +23 -4
- data/lib/buildr/java.rb +1 -0
- data/lib/buildr/java/ant.rb +4 -4
- data/lib/buildr/java/bdd.rb +51 -54
- data/lib/buildr/java/cobertura.rb +57 -35
- data/lib/buildr/java/commands.rb +14 -5
- data/lib/buildr/java/compiler.rb +3 -217
- data/lib/buildr/java/deprecated.rb +4 -4
- data/lib/buildr/java/doc.rb +70 -0
- data/lib/buildr/java/emma.rb +22 -22
- data/lib/buildr/java/jruby.rb +4 -4
- data/lib/buildr/java/jtestr_runner.rb.erb +27 -25
- data/lib/buildr/java/org/apache/buildr/JavaTestFilter.class +0 -0
- data/lib/buildr/java/org/apache/buildr/JavaTestFilter.java +8 -3
- data/lib/buildr/java/packaging.rb +30 -29
- data/lib/buildr/java/pom.rb +4 -4
- data/lib/buildr/java/rjb.rb +6 -6
- data/lib/buildr/java/test_result.rb +61 -85
- data/lib/buildr/java/tests.rb +44 -27
- data/lib/buildr/java/version_requirement.rb +8 -8
- data/lib/buildr/packaging/archive.rb +55 -22
- data/lib/buildr/packaging/artifact.rb +75 -36
- data/lib/buildr/packaging/artifact_namespace.rb +90 -78
- data/lib/buildr/packaging/artifact_search.rb +5 -5
- data/lib/buildr/packaging/gems.rb +11 -7
- data/lib/buildr/packaging/package.rb +10 -7
- data/lib/buildr/packaging/tar.rb +14 -14
- data/lib/buildr/packaging/version_requirement.rb +30 -10
- data/lib/buildr/packaging/ziptask.rb +51 -13
- data/lib/buildr/scala.rb +1 -0
- data/lib/buildr/scala/bdd.rb +25 -20
- data/lib/buildr/scala/compiler.rb +87 -40
- data/lib/buildr/scala/doc.rb +106 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.class +0 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.java +57 -0
- data/lib/buildr/scala/shell.rb +14 -9
- data/lib/buildr/scala/tests.rb +33 -26
- data/lib/buildr/shell.rb +33 -33
- data/rakelib/all-in-one.rake +113 -0
- data/rakelib/checks.rake +1 -1
- data/rakelib/doc.rake +7 -0
- data/rakelib/package.rake +1 -1
- data/rakelib/release.rake +9 -6
- data/rakelib/rspec.rake +26 -7
- data/rakelib/setup.rake +15 -3
- data/rakelib/stage.rake +18 -11
- data/spec/addon/drb_spec.rb +25 -25
- data/spec/core/application_spec.rb +111 -21
- data/spec/core/build_spec.rb +16 -15
- data/spec/core/cc_spec.rb +174 -0
- data/spec/core/checks_spec.rb +34 -34
- data/spec/core/common_spec.rb +51 -5
- data/spec/core/compile_spec.rb +89 -14
- data/spec/core/extension_spec.rb +127 -19
- data/spec/core/generate_spec.rb +2 -2
- data/spec/core/project_spec.rb +10 -10
- data/spec/core/test_spec.rb +144 -35
- data/spec/core/transport_spec.rb +8 -8
- data/spec/core/util_spec.rb +63 -5
- data/spec/groovy/bdd_spec.rb +5 -5
- data/spec/groovy/compiler_spec.rb +29 -18
- data/spec/ide/eclipse_spec.rb +185 -9
- data/spec/ide/idea7x_spec.rb +22 -10
- data/spec/java/ant_spec.rb +9 -5
- data/spec/java/bdd_spec.rb +29 -37
- data/spec/java/cobertura_spec.rb +12 -12
- data/spec/java/commands_spec.rb +34 -0
- data/spec/java/compiler_spec.rb +53 -53
- data/spec/java/emma_spec.rb +11 -11
- data/spec/java/java_spec.rb +10 -10
- data/spec/java/packaging_spec.rb +67 -20
- data/spec/java/test_coverage_helper.rb +18 -18
- data/spec/java/tests_spec.rb +13 -9
- data/spec/packaging/archive_spec.rb +187 -20
- data/spec/packaging/artifact_namespace_spec.rb +172 -83
- data/spec/packaging/artifact_spec.rb +83 -18
- data/spec/packaging/packaging_spec.rb +41 -14
- data/spec/sandbox.rb +23 -12
- data/spec/scala/bdd_spec.rb +13 -8
- data/spec/scala/compiler_spec.rb +18 -13
- data/spec/scala/scala.rb +3 -3
- data/spec/scala/tests_spec.rb +46 -24
- data/spec/spec_helpers.rb +28 -10
- data/spec/version_requirement_spec.rb +25 -11
- metadata +149 -133
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner$.class +0 -0
- data/lib/buildr/scala/org/apache/buildr/SpecsSingletonRunner.scala +0 -35
- data/rakelib/stage.rake~ +0 -213
data/lib/buildr/core/test.rb
CHANGED
@@ -49,7 +49,7 @@ module Buildr
|
|
49
49
|
end
|
50
50
|
|
51
51
|
# Adds a test framework to the list of supported frameworks.
|
52
|
-
#
|
52
|
+
#
|
53
53
|
# For example:
|
54
54
|
# Buildr::TestFramework << Buildr::JUnit
|
55
55
|
def add(framework)
|
@@ -126,7 +126,7 @@ module Buildr
|
|
126
126
|
end
|
127
127
|
|
128
128
|
end
|
129
|
-
|
129
|
+
|
130
130
|
end
|
131
131
|
|
132
132
|
|
@@ -176,6 +176,13 @@ module Buildr
|
|
176
176
|
# all sub-projects, but only invoke test on the local project.
|
177
177
|
Project.projects.each { |project| project.test.send :only_run, tests }
|
178
178
|
end
|
179
|
+
|
180
|
+
# Used by the test/integration rule to only run tests that failed the last time.
|
181
|
+
def only_run_failed() #:nodoc:
|
182
|
+
# Since the tests may reside in a sub-project, we need to set the include/exclude pattern on
|
183
|
+
# all sub-projects, but only invoke test on the local project.
|
184
|
+
Project.projects.each { |project| project.test.send :only_run_failed }
|
185
|
+
end
|
179
186
|
end
|
180
187
|
|
181
188
|
# Default options already set on each test task.
|
@@ -195,7 +202,12 @@ module Buildr
|
|
195
202
|
else
|
196
203
|
@options = OpenObject.new(default_options)
|
197
204
|
end
|
198
|
-
|
205
|
+
|
206
|
+
unless ENV["IGNORE_BUILDFILE"] =~ /(true)|(yes)/i
|
207
|
+
enhance [ application.buildfile.name ]
|
208
|
+
enhance application.buildfile.prerequisites
|
209
|
+
end
|
210
|
+
enhance do
|
199
211
|
run_tests if framework
|
200
212
|
end
|
201
213
|
end
|
@@ -203,18 +215,18 @@ module Buildr
|
|
203
215
|
# The dependencies used for running the tests. Includes the compiled files (compile.target)
|
204
216
|
# and their dependencies. Will also include anything you pass to #with, shared between the
|
205
217
|
# testing compile and run dependencies.
|
206
|
-
|
218
|
+
attr_accessor :dependencies
|
207
219
|
|
208
220
|
# *Deprecated*: Use dependencies instead.
|
209
221
|
def classpath
|
210
222
|
Buildr.application.deprecated 'Use dependencies instead.'
|
211
|
-
dependencies
|
223
|
+
@dependencies
|
212
224
|
end
|
213
225
|
|
214
226
|
# *Deprecated*: Use dependencies= instead.
|
215
227
|
def classpath=(artifacts)
|
216
228
|
Buildr.application.deprecated 'Use dependencies= instead.'
|
217
|
-
|
229
|
+
@dependencies = artifacts
|
218
230
|
end
|
219
231
|
|
220
232
|
def execute(args) #:nodoc:
|
@@ -226,7 +238,7 @@ module Buildr
|
|
226
238
|
begin
|
227
239
|
super
|
228
240
|
rescue RuntimeError
|
229
|
-
raise if options[:fail_on_failure]
|
241
|
+
raise if options[:fail_on_failure] && Buildr.options.test != :all
|
230
242
|
ensure
|
231
243
|
teardown.invoke
|
232
244
|
end
|
@@ -247,7 +259,7 @@ module Buildr
|
|
247
259
|
def compile(*sources, &block)
|
248
260
|
@project.task('test:compile').from(sources).enhance &block
|
249
261
|
end
|
250
|
-
|
262
|
+
|
251
263
|
# :call-seq:
|
252
264
|
# resources(*prereqs) => ResourcesTask
|
253
265
|
# resources(*prereqs) { |task| .. } => ResourcesTask
|
@@ -323,7 +335,7 @@ module Buildr
|
|
323
335
|
Buildr.application.deprecated "Please replace with using(:#{name}=>true)"
|
324
336
|
options[name.to_sym] = true
|
325
337
|
end
|
326
|
-
end
|
338
|
+
end
|
327
339
|
self
|
328
340
|
end
|
329
341
|
|
@@ -395,16 +407,35 @@ module Buildr
|
|
395
407
|
@report_to ||= file(@project.path_to(:reports, framework)=>self)
|
396
408
|
end
|
397
409
|
|
410
|
+
# :call-seq:
|
411
|
+
# failures_to => file
|
412
|
+
#
|
413
|
+
# We record the list of failed tests for the current framework in this file.
|
414
|
+
#
|
415
|
+
#
|
416
|
+
def failures_to
|
417
|
+
@failures_to ||= file(@project.path_to(:target, "#{framework}-failed")=>self)
|
418
|
+
end
|
419
|
+
|
420
|
+
# :call-seq:
|
421
|
+
# last_failures => array
|
422
|
+
#
|
423
|
+
# We read the last test failures if any and return them.
|
424
|
+
#
|
425
|
+
def last_failures
|
426
|
+
@last_failures ||= failures_to.exist? ? File.read(failures_to.to_s).split('\n') : []
|
427
|
+
end
|
428
|
+
|
398
429
|
# The path to the file that stores the time stamp of the last successful test run.
|
399
430
|
def last_successful_run_file #:nodoc:
|
400
431
|
File.join(report_to.to_s, 'last_successful_run')
|
401
432
|
end
|
402
|
-
|
433
|
+
|
403
434
|
# The time stamp of the last successful test run. Or Rake::EARLY if no successful test run recorded.
|
404
435
|
def timestamp #:nodoc:
|
405
436
|
File.exist?(last_successful_run_file) ? File.mtime(last_successful_run_file) : Rake::EARLY
|
406
437
|
end
|
407
|
-
|
438
|
+
|
408
439
|
# The project this task belongs to.
|
409
440
|
attr_reader :project
|
410
441
|
|
@@ -435,8 +466,9 @@ module Buildr
|
|
435
466
|
|
436
467
|
# Runs the tests using the selected test framework.
|
437
468
|
def run_tests
|
438
|
-
dependencies = Buildr.artifacts(self.dependencies).map(&:to_s).uniq
|
469
|
+
dependencies = (Buildr.artifacts(self.dependencies + compile.dependencies) + [compile.target]).map(&:to_s).uniq
|
439
470
|
rm_rf report_to.to_s
|
471
|
+
rm_rf failures_to.to_s
|
440
472
|
@tests = @framework.tests(dependencies).select { |test| include?(test) }.sort
|
441
473
|
if @tests.empty?
|
442
474
|
@passed_tests, @failed_tests = [], []
|
@@ -444,7 +476,7 @@ module Buildr
|
|
444
476
|
info "Running tests in #{@project.name}"
|
445
477
|
begin
|
446
478
|
# set the baseDir system property if not set
|
447
|
-
@framework.options[:properties] = { 'baseDir' =>
|
479
|
+
@framework.options[:properties] = { 'baseDir' => compile.target.to_s }.merge(@framework.options[:properties] || {})
|
448
480
|
@passed_tests = @framework.run(@tests, dependencies)
|
449
481
|
rescue Exception=>ex
|
450
482
|
error "Test framework error: #{ex.message}"
|
@@ -453,6 +485,7 @@ module Buildr
|
|
453
485
|
end
|
454
486
|
@failed_tests = @tests - @passed_tests
|
455
487
|
unless @failed_tests.empty?
|
488
|
+
Buildr::write(failures_to.to_s, @failed_tests.join("\n"))
|
456
489
|
error "The following tests failed:\n#{@failed_tests.join("\n")}"
|
457
490
|
fail 'Tests failed!'
|
458
491
|
end
|
@@ -465,7 +498,7 @@ module Buildr
|
|
465
498
|
mkdir_p report_to.to_s
|
466
499
|
touch last_successful_run_file
|
467
500
|
end
|
468
|
-
|
501
|
+
|
469
502
|
# Limit running tests to specific list.
|
470
503
|
def only_run(tests)
|
471
504
|
@include = Array(tests)
|
@@ -473,6 +506,13 @@ module Buildr
|
|
473
506
|
@forced_need = true
|
474
507
|
end
|
475
508
|
|
509
|
+
# Limit running tests to those who failed the last time.
|
510
|
+
def only_run_failed()
|
511
|
+
@include = Array(last_failures)
|
512
|
+
@exclude.clear
|
513
|
+
@forced_need = true
|
514
|
+
end
|
515
|
+
|
476
516
|
def invoke_prerequisites(args, chain) #:nodoc:
|
477
517
|
@prerequisites |= FileList[@dependencies.uniq]
|
478
518
|
super
|
@@ -543,6 +583,12 @@ module Buildr
|
|
543
583
|
desc 'Run all tests'
|
544
584
|
task('test') { TestTask.run_local_tests false }
|
545
585
|
|
586
|
+
desc 'Run failed tests'
|
587
|
+
task('test:failed') {
|
588
|
+
TestTask.only_run_failed
|
589
|
+
task('test').invoke
|
590
|
+
}
|
591
|
+
|
546
592
|
# This rule takes a suffix and runs that tests in the current project. For example;
|
547
593
|
# buildr test:MyTest
|
548
594
|
# will run the test com.example.MyTest, if such a test exists for this project.
|
@@ -567,8 +613,8 @@ module Buildr
|
|
567
613
|
end
|
568
614
|
|
569
615
|
end
|
570
|
-
|
571
|
-
before_define do |project|
|
616
|
+
|
617
|
+
before_define(:test) do |project|
|
572
618
|
# Define a recursive test task, and pass it a reference to the project so it can discover all other tasks.
|
573
619
|
test = TestTask.define_task('test')
|
574
620
|
test.send :associate_with, project
|
@@ -578,8 +624,26 @@ module Buildr
|
|
578
624
|
resources.send :associate_with, project, :test
|
579
625
|
project.path_to(:source, :test, :resources).tap { |dir| resources.from dir if File.exist?(dir) }
|
580
626
|
|
627
|
+
# We define a module inline that will inject cancelling the task if tests are skipped.
|
628
|
+
module SkipIfNoTest
|
629
|
+
|
630
|
+
def self.extended(base)
|
631
|
+
base.instance_eval {alias :execute_before_skip_if_no_test :execute}
|
632
|
+
base.instance_eval {alias :execute :execute_after_skip_if_no_test}
|
633
|
+
end
|
634
|
+
|
635
|
+
def execute_after_skip_if_no_test(args) #:nodoc:
|
636
|
+
if Buildr.options.test == false
|
637
|
+
trace "Skipping #{to_s} for #{project.name} as tests are skipped"
|
638
|
+
return
|
639
|
+
end
|
640
|
+
execute_before_skip_if_no_test(args)
|
641
|
+
end
|
642
|
+
end
|
643
|
+
|
581
644
|
# Similar to the regular compile task but using different paths.
|
582
645
|
compile = CompileTask.define_task('test:compile'=>[project.compile, resources])
|
646
|
+
compile.extend SkipIfNoTest
|
583
647
|
compile.send :associate_with, project, :test
|
584
648
|
test.enhance [compile]
|
585
649
|
|
@@ -587,17 +651,20 @@ module Buildr
|
|
587
651
|
test.setup ; test.teardown
|
588
652
|
end
|
589
653
|
|
590
|
-
|
654
|
+
|
655
|
+
|
656
|
+
after_define(:test => :compile) do |project|
|
591
657
|
test = project.test
|
592
658
|
# Dependency on compiled tests and resources. Dependencies added using with.
|
593
659
|
test.dependencies.concat [test.compile.target, test.resources.target].compact
|
660
|
+
test.dependencies.concat test.compile.dependencies
|
594
661
|
# Dependency on compiled code, its dependencies and resources.
|
595
662
|
test.with [project.compile.target, project.resources.target].compact
|
596
663
|
test.with project.compile.dependencies
|
597
664
|
# Picking up the test frameworks adds further dependencies.
|
598
665
|
test.framework
|
599
|
-
|
600
|
-
project.build test unless test.options[:integration]
|
666
|
+
|
667
|
+
project.build test unless test.options[:integration] || Buildr.options.test == :only
|
601
668
|
|
602
669
|
project.clean do
|
603
670
|
rm_rf test.compile.target.to_s if test.compile.target
|
@@ -629,7 +696,7 @@ module Buildr
|
|
629
696
|
def test(*prereqs, &block)
|
630
697
|
task('test').enhance prereqs, &block
|
631
698
|
end
|
632
|
-
|
699
|
+
|
633
700
|
# :call-seq:
|
634
701
|
# integration { |task| .... }
|
635
702
|
# integration => IntegrationTestTask
|
@@ -682,6 +749,8 @@ module Buildr
|
|
682
749
|
false
|
683
750
|
when /^all$/i
|
684
751
|
:all
|
752
|
+
when /^only$/i
|
753
|
+
:only
|
685
754
|
when /^(yes|on|true)$/i, nil
|
686
755
|
true
|
687
756
|
else
|
@@ -76,7 +76,7 @@ module URI
|
|
76
76
|
uri = URI.parse(uri.to_s) unless URI === uri
|
77
77
|
uri.download target, options
|
78
78
|
end
|
79
|
-
|
79
|
+
|
80
80
|
# :call-seq:
|
81
81
|
# write(uri, content, options?)
|
82
82
|
# write(uri, options?) { |bytes| .. }
|
@@ -98,7 +98,7 @@ module URI
|
|
98
98
|
uri = URI.parse(uri.to_s) unless URI === uri
|
99
99
|
uri.write *args, &block
|
100
100
|
end
|
101
|
-
|
101
|
+
|
102
102
|
# :call-seq:
|
103
103
|
# upload(uri, source, options?)
|
104
104
|
#
|
@@ -162,7 +162,7 @@ module URI
|
|
162
162
|
target.flush
|
163
163
|
end
|
164
164
|
end
|
165
|
-
|
165
|
+
|
166
166
|
# :call-seq:
|
167
167
|
# write(content, options?)
|
168
168
|
# write(options?) { |bytes| .. }
|
@@ -527,11 +527,12 @@ module URI
|
|
527
527
|
"file://#{host}#{path}"
|
528
528
|
end
|
529
529
|
|
530
|
-
#
|
531
|
-
#
|
532
|
-
#
|
530
|
+
# Returns the file system path based that corresponds to the URL path.
|
531
|
+
# On windows this method strips the leading slash off of the path.
|
532
|
+
# On all platforms this method unescapes the URL path.
|
533
533
|
def real_path #:nodoc:
|
534
|
-
|
534
|
+
real_path = Buildr::Util.win_os? && path =~ /^\/[a-zA-Z]:\// ? path[1..-1] : path
|
535
|
+
URI.unescape(real_path)
|
535
536
|
end
|
536
537
|
|
537
538
|
protected
|
data/lib/buildr/core/util.rb
CHANGED
@@ -25,7 +25,7 @@ require 'highline/import'
|
|
25
25
|
|
26
26
|
|
27
27
|
module Buildr
|
28
|
-
|
28
|
+
|
29
29
|
module Util
|
30
30
|
extend self
|
31
31
|
|
@@ -37,7 +37,7 @@ module Buildr
|
|
37
37
|
# prefer this function instead of using Gem.win_platform?.
|
38
38
|
#
|
39
39
|
# Gem.win_platform? only checks these RUBY_PLATFORM global,
|
40
|
-
# that in some cases like when running on JRuby is not
|
40
|
+
# that in some cases like when running on JRuby is not
|
41
41
|
# succifient for our purpose:
|
42
42
|
#
|
43
43
|
# For JRuby, the value for RUBY_PLATFORM will always be 'java'
|
@@ -77,7 +77,7 @@ module Buildr
|
|
77
77
|
path
|
78
78
|
end
|
79
79
|
end
|
80
|
-
|
80
|
+
|
81
81
|
# Return the timestamp of file, without having to create a file task
|
82
82
|
def timestamp(file)
|
83
83
|
if File.exist?(file)
|
@@ -121,7 +121,7 @@ module Buildr
|
|
121
121
|
|
122
122
|
# Install gems specified by each Gem::Dependency if they are missing. This method prompts the user
|
123
123
|
# for permission before installing anything.
|
124
|
-
#
|
124
|
+
#
|
125
125
|
# Returns the installed Gem::Dependency objects or fails if permission not granted or when buildr
|
126
126
|
# is not running interactively (on a tty)
|
127
127
|
def install(*dependencies)
|
@@ -334,11 +334,11 @@ if Buildr::Util.java_platform?
|
|
334
334
|
end
|
335
335
|
private :mv
|
336
336
|
end
|
337
|
-
|
337
|
+
|
338
338
|
module RakeFileUtils #:nodoc:
|
339
339
|
def rake_merge_option(args, defaults)
|
340
340
|
defaults[:verbose] = false if defaults[:verbose] == :default
|
341
|
-
|
341
|
+
|
342
342
|
if Hash === args.last
|
343
343
|
defaults.update(args.last)
|
344
344
|
args.pop
|
@@ -348,56 +348,56 @@ if Buildr::Util.java_platform?
|
|
348
348
|
end
|
349
349
|
private :rake_merge_option
|
350
350
|
end
|
351
|
-
|
351
|
+
|
352
352
|
module Buildr
|
353
353
|
class ProcessStatus
|
354
354
|
attr_reader :pid, :termsig, :stopsig, :exitstatus
|
355
|
-
|
355
|
+
|
356
356
|
def initialize(pid, success, exitstatus)
|
357
357
|
@pid = pid
|
358
358
|
@success = success
|
359
359
|
@exitstatus = exitstatus
|
360
|
-
|
360
|
+
|
361
361
|
@termsig = nil
|
362
362
|
@stopsig = nil
|
363
363
|
end
|
364
|
-
|
364
|
+
|
365
365
|
def &(num)
|
366
366
|
pid & num
|
367
367
|
end
|
368
|
-
|
368
|
+
|
369
369
|
def ==(other)
|
370
370
|
pid == other.pid
|
371
371
|
end
|
372
|
-
|
372
|
+
|
373
373
|
def >>(num)
|
374
374
|
pid >> num
|
375
375
|
end
|
376
|
-
|
376
|
+
|
377
377
|
def coredump?
|
378
378
|
false
|
379
379
|
end
|
380
|
-
|
380
|
+
|
381
381
|
def exited?
|
382
382
|
true
|
383
383
|
end
|
384
|
-
|
384
|
+
|
385
385
|
def stopped?
|
386
386
|
false
|
387
387
|
end
|
388
|
-
|
388
|
+
|
389
389
|
def success?
|
390
390
|
@success
|
391
391
|
end
|
392
|
-
|
392
|
+
|
393
393
|
def to_i
|
394
394
|
pid
|
395
395
|
end
|
396
|
-
|
396
|
+
|
397
397
|
def to_int
|
398
398
|
pid
|
399
399
|
end
|
400
|
-
|
400
|
+
|
401
401
|
def to_s
|
402
402
|
pid.to_s
|
403
403
|
end
|
@@ -406,18 +406,21 @@ if Buildr::Util.java_platform?
|
|
406
406
|
|
407
407
|
module FileUtils
|
408
408
|
extend FFI::Library
|
409
|
+
|
410
|
+
ffi_lib FFI::Platform::LIBC
|
411
|
+
|
409
412
|
alias_method :__jruby_system__, :system
|
410
413
|
attach_function :system, [:string], :int
|
411
414
|
alias_method :__native_system__, :system
|
412
415
|
alias_method :system, :__jruby_system__
|
413
|
-
|
416
|
+
|
414
417
|
# code "borrowed" directly from Rake
|
415
418
|
def sh(*cmd, &block)
|
416
419
|
options = (Hash === cmd.last) ? cmd.pop : {}
|
417
420
|
unless block_given?
|
418
421
|
show_command = cmd.join(" ")
|
419
422
|
show_command = show_command[0,42] + "..."
|
420
|
-
|
423
|
+
|
421
424
|
block = lambda { |ok, status|
|
422
425
|
ok or fail "Command failed with status (#{status.exitstatus}): [#{show_command}]"
|
423
426
|
}
|
@@ -431,9 +434,16 @@ if Buildr::Util.java_platform?
|
|
431
434
|
rake_check_options options, :noop, :verbose
|
432
435
|
rake_output_message cmd.join(" ") if options[:verbose]
|
433
436
|
unless options[:noop]
|
434
|
-
|
437
|
+
if Buildr::Util.win_os?
|
438
|
+
# Ruby uses forward slashes regardless of platform,
|
439
|
+
# unfortunately cd c:/some/path fails on Windows
|
440
|
+
pwd = Dir.pwd.gsub(%r{/}, '\\')
|
441
|
+
cd = "cd /d \"#{pwd}\" && "
|
442
|
+
else
|
443
|
+
cd = "cd '#{Dir.pwd}' && "
|
444
|
+
end
|
435
445
|
args = if cmd.size > 1 then cmd[1..cmd.size] else [] end
|
436
|
-
|
446
|
+
|
437
447
|
res = if Buildr::Util.win_os? && cmd.size == 1
|
438
448
|
__native_system__("#{cd} call #{cmd.first}")
|
439
449
|
else
|
@@ -446,4 +456,48 @@ if Buildr::Util.java_platform?
|
|
446
456
|
end
|
447
457
|
|
448
458
|
end
|
459
|
+
else
|
460
|
+
module FileUtils
|
461
|
+
# code "borrowed" directly from Rake
|
462
|
+
def sh(*cmd, &block)
|
463
|
+
options = (Hash === cmd.last) ? cmd.pop : {}
|
464
|
+
unless block_given?
|
465
|
+
show_command = cmd.join(" ")
|
466
|
+
show_command = show_command[0,42] + "..."
|
467
|
+
|
468
|
+
block = lambda { |ok, status|
|
469
|
+
ok or fail "Command failed with status (#{status.exitstatus}): [#{show_command}]"
|
470
|
+
}
|
471
|
+
end
|
472
|
+
if RakeFileUtils.verbose_flag == :default
|
473
|
+
options[:verbose] = false
|
474
|
+
else
|
475
|
+
options[:verbose] ||= RakeFileUtils.verbose_flag
|
476
|
+
end
|
477
|
+
options[:noop] ||= RakeFileUtils.nowrite_flag
|
478
|
+
rake_check_options options, :noop, :verbose
|
479
|
+
rake_output_message cmd.join(" ") if options[:verbose]
|
480
|
+
unless options[:noop]
|
481
|
+
if Buildr::Util.win_os?
|
482
|
+
# Ruby uses forward slashes regardless of platform,
|
483
|
+
# unfortunately cd c:/some/path fails on Windows
|
484
|
+
pwd = Dir.pwd.gsub(%r{/}, '\\')
|
485
|
+
cd = "cd /d \"#{pwd}\" && "
|
486
|
+
else
|
487
|
+
cd = "cd '#{Dir.pwd}' && "
|
488
|
+
end
|
489
|
+
|
490
|
+
args = if cmd.size > 1 then cmd[1..cmd.size] else [] end
|
491
|
+
|
492
|
+
res = if Buildr::Util.win_os? && cmd.size == 1
|
493
|
+
system("#{cd} call #{cmd.first}")
|
494
|
+
else
|
495
|
+
arg_str = args.map { |a| "'#{a}'" }
|
496
|
+
system(cd + cmd.first + ' ' + arg_str.join(' '))
|
497
|
+
end
|
498
|
+
|
499
|
+
block.call(res, $?)
|
500
|
+
end
|
501
|
+
end
|
502
|
+
end
|
449
503
|
end
|