rake-funnel 0.3.2.pre → 0.4.0.pre
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 +4 -4
- data/.rspec +2 -2
- data/Gemfile +4 -0
- data/README.md +2 -2
- data/lib/rake/funnel/ambiguous_file_error.rb +31 -29
- data/lib/rake/funnel/execution_error.rb +28 -26
- data/lib/rake/funnel/extensions/case/camel_case.rb +24 -19
- data/lib/rake/funnel/extensions/case/pascal_case.rb +24 -19
- data/lib/rake/funnel/extensions/case.rb +3 -3
- data/lib/rake/funnel/extensions/common_path.rb +60 -52
- data/lib/rake/funnel/extensions/disable_colors.rb +33 -27
- data/lib/rake/funnel/extensions/rexml.rb +27 -23
- data/lib/rake/funnel/extensions/shell.rb +92 -56
- data/lib/rake/funnel/extensions/windows_path.rb +15 -11
- data/lib/rake/funnel/framework.rb +11 -16
- data/lib/rake/funnel/integration/progress_report.rb +72 -70
- data/lib/rake/funnel/integration/sync_output.rb +12 -8
- data/lib/rake/funnel/integration/teamcity/nunit_plugin.rb +61 -55
- data/lib/rake/funnel/integration/teamcity/progress_report.rb +39 -33
- data/lib/rake/funnel/integration/teamcity/service_messages.rb +46 -40
- data/lib/rake/funnel/integration/teamcity/teamcity.rb +19 -15
- data/lib/rake/funnel/integration/teamcity.rb +3 -5
- data/lib/rake/funnel/support/argument_mapper/key_value_pair.rb +16 -10
- data/lib/rake/funnel/support/argument_mapper/styles/default.rb +39 -31
- data/lib/rake/funnel/support/argument_mapper/styles/msbuild.rb +41 -33
- data/lib/rake/funnel/support/argument_mapper/styles/msdeploy.rb +55 -47
- data/lib/rake/funnel/support/argument_mapper/styles/nunit.rb +41 -33
- data/lib/rake/funnel/support/argument_mapper/styles.rb +3 -5
- data/lib/rake/funnel/support/argument_mapper/switch.rb +16 -10
- data/lib/rake/funnel/support/argument_mapper/value.rb +16 -10
- data/lib/rake/funnel/support/assembly_version/from_version_files.rb +39 -35
- data/lib/rake/funnel/support/assembly_version/languages/cs +5 -5
- data/lib/rake/funnel/support/assembly_version/languages/fs +12 -12
- data/lib/rake/funnel/support/assembly_version/languages/vb +5 -5
- data/lib/rake/funnel/support/assembly_version_writer.rb +56 -52
- data/lib/rake/funnel/support/binary_version_reader.rb +37 -32
- data/lib/rake/funnel/support/copier.rb +31 -27
- data/lib/rake/funnel/support/environments/loader.rb +46 -40
- data/lib/rake/funnel/support/environments.rb +3 -3
- data/lib/rake/funnel/support/internal/finder.rb +55 -51
- data/lib/rake/funnel/support/internal/instantiate_symbol.rb +38 -34
- data/lib/rake/funnel/support/mapper.rb +57 -53
- data/lib/rake/funnel/support/mono.rb +21 -17
- data/lib/rake/funnel/support/msbuild/build_tool.rb +30 -24
- data/lib/rake/funnel/support/msbuild.rb +3 -3
- data/lib/rake/funnel/support/msdeploy/registry_patch.rb +90 -84
- data/lib/rake/funnel/support/msdeploy.rb +3 -3
- data/lib/rake/funnel/support/patch.rb +41 -37
- data/lib/rake/funnel/support/specs_remover.rb +66 -62
- data/lib/rake/funnel/support/template_engine.rb +30 -26
- data/lib/rake/funnel/support/timing/report.rb +95 -89
- data/lib/rake/funnel/support/timing/statistics.rb +32 -26
- data/lib/rake/funnel/support/timing.rb +3 -3
- data/lib/rake/funnel/support/version_info.rb +103 -72
- data/lib/rake/funnel/support/which.rb +19 -15
- data/lib/rake/funnel/support/zipper.rb +53 -49
- data/lib/rake/funnel/tasks/assembly_version.rb +44 -40
- data/lib/rake/funnel/tasks/bin_path.rb +45 -41
- data/lib/rake/funnel/tasks/copy.rb +43 -39
- data/lib/rake/funnel/tasks/environments.rb +89 -89
- data/lib/rake/funnel/tasks/msbuild.rb +55 -51
- data/lib/rake/funnel/tasks/msdeploy.rb +54 -50
- data/lib/rake/funnel/tasks/nunit.rb +52 -48
- data/lib/rake/funnel/tasks/paket.rb +51 -47
- data/lib/rake/funnel/tasks/quick_template.rb +53 -49
- data/lib/rake/funnel/tasks/side_by_side_specs.rb +41 -37
- data/lib/rake/funnel/tasks/timing.rb +108 -104
- data/lib/rake/funnel/tasks/zip.rb +46 -42
- data/lib/rake/funnel/version.rb +1 -1
- data/lib/rake/funnel.rb +7 -7
- data/rake-funnel.gemspec +12 -3
- data/spec/rake/funnel/execution_error_spec.rb +67 -67
- data/spec/rake/funnel/extensions/case/camel_case_spec.rb +17 -17
- data/spec/rake/funnel/extensions/case/pascal_case_spec.rb +17 -17
- data/spec/rake/funnel/extensions/common_path_spec.rb +56 -56
- data/spec/rake/funnel/extensions/disable_colors_spec.rb +33 -33
- data/spec/rake/funnel/extensions/rexml_spec.rb +20 -20
- data/spec/rake/funnel/extensions/shell_spec.rb +237 -237
- data/spec/rake/funnel/extensions/windows_path_spec.rb +5 -5
- data/spec/rake/funnel/integration/progress_report_spec.rb +149 -149
- data/spec/rake/funnel/integration/sync_output_spec.rb +16 -16
- data/spec/rake/funnel/integration/teamcity/nunit_plugin_spec.rb +110 -110
- data/spec/rake/funnel/integration/teamcity/progress_report_spec.rb +174 -174
- data/spec/rake/funnel/integration/teamcity/service_messages_spec.rb +136 -136
- data/spec/rake/funnel/integration/teamcity/teamcity_spec.rb +34 -34
- data/spec/rake/funnel/support/argument_mapper/styles/msdeploy_spec.rb +222 -222
- data/spec/rake/funnel/support/argument_mapper/styles/nunit_spec.rb +25 -25
- data/spec/rake/funnel/support/argument_mapper/styles/styles_spec.rb +214 -214
- data/spec/rake/funnel/support/assembly_version/from_version_files_spec.rb +66 -61
- data/spec/rake/funnel/support/assembly_version_writer_spec.rb +140 -140
- data/spec/rake/funnel/support/binary_version_reader_spec.rb +29 -29
- data/spec/rake/funnel/support/copier_spec.rb +58 -58
- data/spec/rake/funnel/support/environments/loader_spec.rb +143 -143
- data/spec/rake/funnel/support/internal/finder_spec.rb +229 -229
- data/spec/rake/funnel/support/internal/instantiate_symbol_spec.rb +182 -183
- data/spec/rake/funnel/support/mapper_spec.rb +87 -87
- data/spec/rake/funnel/support/mono_spec.rb +57 -57
- data/spec/rake/funnel/support/msbuild/build_tool_spec.rb +21 -21
- data/spec/rake/funnel/support/msdeploy/registry_patch_spec.rb +139 -139
- data/spec/rake/funnel/support/patch_spec.rb +108 -108
- data/spec/rake/funnel/support/specs_remover/Sample.csproj +28 -28
- data/spec/rake/funnel/support/specs_remover_spec.rb +116 -116
- data/spec/rake/funnel/support/template_engine_spec.rb +65 -65
- data/spec/rake/funnel/support/timing/report_spec.rb +129 -129
- data/spec/rake/funnel/support/version_info_spec.rb +333 -228
- data/spec/rake/funnel/support/which_spec.rb +65 -65
- data/spec/rake/funnel/support/zipper_spec.rb +77 -77
- data/spec/rake/funnel/tasks/assembly_version_spec.rb +45 -45
- data/spec/rake/funnel/tasks/bin_path_spec.rb +52 -52
- data/spec/rake/funnel/tasks/copy_spec.rb +44 -44
- data/spec/rake/funnel/tasks/environments_spec.rb +249 -247
- data/spec/rake/funnel/tasks/msbuild_spec.rb +91 -91
- data/spec/rake/funnel/tasks/msdeploy_spec.rb +220 -220
- data/spec/rake/funnel/tasks/nunit_spec.rb +74 -74
- data/spec/rake/funnel/tasks/paket_spec.rb +140 -142
- data/spec/rake/funnel/tasks/quick_template_spec.rb +62 -62
- data/spec/rake/funnel/tasks/side_by_side_specs_spec.rb +58 -58
- data/spec/rake/funnel/tasks/timing_spec.rb +133 -133
- data/spec/rake/funnel/tasks/zip_spec.rb +50 -50
- data/spec/spec_helper.rb +43 -33
- metadata +2 -3
- data/lib/rake/funnel/support/side_by_side_specs.rb +0 -3
|
@@ -1,27 +1,31 @@
|
|
|
1
|
-
module Rake
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
end
|
|
1
|
+
module Rake
|
|
2
|
+
module Funnel
|
|
3
|
+
module Support
|
|
4
|
+
class Copier
|
|
5
|
+
class << self
|
|
6
|
+
def copy(files, target)
|
|
7
|
+
raise 'Target not defined' unless target
|
|
8
|
+
|
|
9
|
+
common_path = files.common_path
|
|
10
|
+
files.each do |source|
|
|
11
|
+
next if File.directory?(source)
|
|
12
|
+
|
|
13
|
+
target_path = target_path(source, common_path, target)
|
|
14
|
+
|
|
15
|
+
dir = File.dirname(target_path)
|
|
16
|
+
RakeFileUtils.mkdir_p(dir) unless File.directory?(dir)
|
|
17
|
+
|
|
18
|
+
RakeFileUtils.cp(source, target_path, preserve: true)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
def target_path(file, common_path, target)
|
|
24
|
+
target_relative = Pathname.new(file).relative_path_from(Pathname.new(common_path)).to_s
|
|
25
|
+
File.join(target, target_relative)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -1,40 +1,46 @@
|
|
|
1
|
-
require 'configatron'
|
|
2
|
-
require 'yaml'
|
|
3
|
-
|
|
4
|
-
module Rake
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
end
|
|
1
|
+
require 'configatron'
|
|
2
|
+
require 'yaml'
|
|
3
|
+
|
|
4
|
+
module Rake
|
|
5
|
+
module Funnel
|
|
6
|
+
module Support
|
|
7
|
+
module Environments
|
|
8
|
+
class Loader
|
|
9
|
+
class << self
|
|
10
|
+
def load_configuration(config, store = configatron, customizer = nil)
|
|
11
|
+
Rake.rake_output_message("Configuring for #{config[:name]}")
|
|
12
|
+
store.unlock!
|
|
13
|
+
store.reset!
|
|
14
|
+
|
|
15
|
+
store.env = config[:name]
|
|
16
|
+
|
|
17
|
+
operation = 'Loading'
|
|
18
|
+
config.fetch(:config_files, []).each do |file|
|
|
19
|
+
Rake.rake_output_message("#{operation} #{file}")
|
|
20
|
+
operation = 'Merging'
|
|
21
|
+
|
|
22
|
+
yaml = File.read(file)
|
|
23
|
+
yaml = evaluate_erb(yaml, file)
|
|
24
|
+
yaml = YAML.load(yaml) || {}
|
|
25
|
+
store.configure_from_hash(yaml)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
customizer.call(store) if customizer && customizer.respond_to?(:call)
|
|
29
|
+
|
|
30
|
+
store.lock!
|
|
31
|
+
|
|
32
|
+
Rake.rake_output_message('')
|
|
33
|
+
Rake.rake_output_message(store.inspect)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def evaluate_erb(yaml, filename)
|
|
37
|
+
render = ERB.new(yaml)
|
|
38
|
+
render.filename = filename
|
|
39
|
+
render.result
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
Dir[File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), '*.rb')].each do |path|
|
|
2
|
-
require path
|
|
3
|
-
end
|
|
1
|
+
Dir[File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), '*.rb')].each do |path|
|
|
2
|
+
require path
|
|
3
|
+
end
|
|
@@ -1,51 +1,55 @@
|
|
|
1
|
-
module Rake
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
end
|
|
1
|
+
module Rake
|
|
2
|
+
module Funnel
|
|
3
|
+
module Support
|
|
4
|
+
class Finder
|
|
5
|
+
include Enumerable
|
|
6
|
+
|
|
7
|
+
def initialize(search_pattern, task, message = nil)
|
|
8
|
+
@search_pattern = search_pattern
|
|
9
|
+
@task = task
|
|
10
|
+
@message = message
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def each
|
|
14
|
+
block_given? or return enum_for(__method__)
|
|
15
|
+
all_or_default.each { |x| yield x }
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def single_or_default
|
|
19
|
+
first_sln
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def single
|
|
23
|
+
if first_sln.nil?
|
|
24
|
+
raise Rake::Funnel::AmbiguousFileError.new(@message, @task.name, @search_pattern, candidates)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
first_sln
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def all_or_default
|
|
31
|
+
candidates
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def all
|
|
35
|
+
if candidates.empty?
|
|
36
|
+
raise Rake::Funnel::AmbiguousFileError.new(@message, @task.name, @search_pattern, candidates)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
candidates
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
def first_sln
|
|
44
|
+
return candidates.first if candidates.one?
|
|
45
|
+
|
|
46
|
+
nil
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def candidates
|
|
50
|
+
Dir[*@search_pattern.dup].select { |f| File.file?(f) }.uniq
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -1,34 +1,38 @@
|
|
|
1
|
-
module Rake
|
|
2
|
-
module
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
end
|
|
1
|
+
module Rake
|
|
2
|
+
module Funnel
|
|
3
|
+
module Support
|
|
4
|
+
module InstantiateSymbol
|
|
5
|
+
def self.included(klass)
|
|
6
|
+
klass.extend(ClassMethods)
|
|
7
|
+
klass.send(:instantiate, klass)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
module ClassMethods
|
|
11
|
+
attr_reader :module
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
def instantiate(mod)
|
|
15
|
+
@module = mod
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
def create(sym, *args)
|
|
21
|
+
return sym unless sym.is_a?(Symbol)
|
|
22
|
+
|
|
23
|
+
begin
|
|
24
|
+
type = self.class.module.const_get(sym)
|
|
25
|
+
rescue NameError
|
|
26
|
+
raise NameError, "Unknown type to instantiate: #{sym.inspect}. Available types are: #{available.inspect}"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
type.new(*args)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def available
|
|
33
|
+
self.class.module.constants.sort
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -1,53 +1,57 @@
|
|
|
1
|
-
Dir[File.join(File.dirname(__FILE__), 'argument_mapper', '*.rb')].each do |path|
|
|
2
|
-
require path
|
|
3
|
-
end
|
|
4
|
-
|
|
5
|
-
module Rake
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
end
|
|
1
|
+
Dir[File.join(File.dirname(__FILE__), 'argument_mapper', '*.rb')].each do |path|
|
|
2
|
+
require path
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
module Rake
|
|
6
|
+
module Funnel
|
|
7
|
+
module Support
|
|
8
|
+
class Mapper
|
|
9
|
+
include ArgumentMapper
|
|
10
|
+
include InstantiateSymbol
|
|
11
|
+
instantiate Styles
|
|
12
|
+
|
|
13
|
+
def initialize(style = :Default)
|
|
14
|
+
raise "You cannot use the 'nil' mapper style. Available mappers are: #{available.inspect}" if style.nil?
|
|
15
|
+
|
|
16
|
+
@style = create(style)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def map(args = {})
|
|
20
|
+
model = (args || {}).map { |switch, value|
|
|
21
|
+
value = [value] unless value.is_a?(Array)
|
|
22
|
+
|
|
23
|
+
values = value.map do |val|
|
|
24
|
+
get_values(val)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
Switch.new(switch, values)
|
|
28
|
+
}.flatten
|
|
29
|
+
|
|
30
|
+
@style
|
|
31
|
+
.generate_from(model)
|
|
32
|
+
.map { |args| args.map { |arg| camel_case_symbols(arg) } }
|
|
33
|
+
.map(&:join)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
private
|
|
37
|
+
def get_values(value)
|
|
38
|
+
if value.is_a?(Enumerable)
|
|
39
|
+
pairs = value.map { |k, v|
|
|
40
|
+
KeyValuePair.new(k, v)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return Array.new(pairs) if value.is_a?(Array)
|
|
44
|
+
pairs
|
|
45
|
+
else
|
|
46
|
+
Value.new(value)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def camel_case_symbols(value)
|
|
51
|
+
return value unless value.is_a?(Symbol)
|
|
52
|
+
value.camelize
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
module Rake
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
end
|
|
1
|
+
module Rake
|
|
2
|
+
module Funnel
|
|
3
|
+
module Support
|
|
4
|
+
class Mono
|
|
5
|
+
class << self
|
|
6
|
+
def invocation(executable, *args)
|
|
7
|
+
exe_args = ([executable] << args).flatten.compact
|
|
8
|
+
|
|
9
|
+
if Rake::Win32.windows?
|
|
10
|
+
return exe_args
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
executable = exe_args.shift
|
|
14
|
+
found = Which.which(executable) || executable
|
|
15
|
+
exe_args.unshift('mono', found)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -1,24 +1,30 @@
|
|
|
1
|
-
module Rake
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
end
|
|
1
|
+
module Rake
|
|
2
|
+
module Funnel
|
|
3
|
+
module Support
|
|
4
|
+
module MSBuild
|
|
5
|
+
class BuildTool
|
|
6
|
+
class << self
|
|
7
|
+
def find
|
|
8
|
+
return 'xbuild' unless Rake::Win32.windows?
|
|
9
|
+
|
|
10
|
+
require 'win32/registry'
|
|
11
|
+
|
|
12
|
+
%w(12.0 4.0 3.5 2.0).collect { |version|
|
|
13
|
+
key = "SOFTWARE\\Microsoft\\MSBuild\\ToolsVersions\\#{version}"
|
|
14
|
+
|
|
15
|
+
begin
|
|
16
|
+
::Win32::Registry::HKEY_LOCAL_MACHINE.open(key) do |reg|
|
|
17
|
+
candidate = File.join(reg['MSBuildToolsPath'] || '', 'msbuild.exe')
|
|
18
|
+
next candidate if File.exist?(candidate)
|
|
19
|
+
end
|
|
20
|
+
rescue
|
|
21
|
+
next
|
|
22
|
+
end
|
|
23
|
+
}.compact.first
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
Dir[File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), '*.rb')].each do |path|
|
|
2
|
-
require path
|
|
3
|
-
end
|
|
1
|
+
Dir[File.join(File.dirname(__FILE__), File.basename(__FILE__, '.rb'), '*.rb')].each do |path|
|
|
2
|
+
require path
|
|
3
|
+
end
|