fluent_command_builder 0.8.6 → 0.8.7

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.
Files changed (47) hide show
  1. data/lib/fluent_command_builder.rb +1 -0
  2. data/lib/fluent_command_builder/argument_formatter.rb +38 -0
  3. data/lib/fluent_command_builder/command_base.rb +0 -20
  4. data/lib/fluent_command_builder/command_builders/appcfg_python_16.rb +4 -3
  5. data/lib/fluent_command_builder/command_builders/appcfg_python_17.rb +4 -3
  6. data/lib/fluent_command_builder/command_builders/aspnet_compiler_20.rb +4 -3
  7. data/lib/fluent_command_builder/command_builders/aspnet_compiler_40.rb +4 -3
  8. data/lib/fluent_command_builder/command_builders/bundle_11.rb +4 -3
  9. data/lib/fluent_command_builder/command_builders/cucumber_11.rb +4 -3
  10. data/lib/fluent_command_builder/command_builders/cucumber_12.rb +4 -3
  11. data/lib/fluent_command_builder/command_builders/dev_appserver_python_16.rb +4 -3
  12. data/lib/fluent_command_builder/command_builders/dev_appserver_python_17.rb +4 -3
  13. data/lib/fluent_command_builder/command_builders/dotcover_10.rb +4 -3
  14. data/lib/fluent_command_builder/command_builders/dotcover_11.rb +4 -3
  15. data/lib/fluent_command_builder/command_builders/dotcover_12.rb +4 -3
  16. data/lib/fluent_command_builder/command_builders/dotcover_20.rb +4 -3
  17. data/lib/fluent_command_builder/command_builders/fastlinkchecker_21.rb +4 -3
  18. data/lib/fluent_command_builder/command_builders/installutil_11.rb +4 -3
  19. data/lib/fluent_command_builder/command_builders/installutil_20.rb +4 -3
  20. data/lib/fluent_command_builder/command_builders/installutil_35.rb +4 -3
  21. data/lib/fluent_command_builder/command_builders/installutil_40.rb +4 -3
  22. data/lib/fluent_command_builder/command_builders/msbuild_20.rb +4 -3
  23. data/lib/fluent_command_builder/command_builders/msbuild_30.rb +4 -3
  24. data/lib/fluent_command_builder/command_builders/msbuild_35.rb +4 -3
  25. data/lib/fluent_command_builder/command_builders/msbuild_40.rb +4 -3
  26. data/lib/fluent_command_builder/command_builders/msdeploy_71.rb +4 -3
  27. data/lib/fluent_command_builder/command_builders/mstest_100.rb +4 -3
  28. data/lib/fluent_command_builder/command_builders/mstest_80.rb +4 -3
  29. data/lib/fluent_command_builder/command_builders/mstest_90.rb +4 -3
  30. data/lib/fluent_command_builder/command_builders/netsh_61.rb +4 -3
  31. data/lib/fluent_command_builder/command_builders/nuget_20.rb +4 -3
  32. data/lib/fluent_command_builder/command_builders/nunit_25.rb +4 -3
  33. data/lib/fluent_command_builder/command_builders/nunit_26.rb +4 -3
  34. data/lib/fluent_command_builder/command_builders/rake_09.rb +4 -3
  35. data/lib/fluent_command_builder/command_builders/security_osx_107.rb +4 -3
  36. data/lib/fluent_command_builder/command_builders/sevenzip_920.rb +4 -3
  37. data/lib/fluent_command_builder/command_builders/simian_23.rb +4 -3
  38. data/lib/fluent_command_builder/command_builders/team_foundation_100.rb +4 -3
  39. data/lib/fluent_command_builder/command_builders/team_foundation_tee_100.rb +4 -3
  40. data/lib/fluent_command_builder/command_builders/team_foundation_tee_101.rb +4 -3
  41. data/lib/fluent_command_builder/command_builders/xcodebuild_43.rb +4 -3
  42. data/lib/fluent_command_builder/command_builders/xcodebuild_44.rb +4 -3
  43. data/lib/fluent_command_builder/execution_context.rb +10 -5
  44. data/lib/fluent_command_builder/path_validator.rb +35 -0
  45. data/lib/fluent_command_builder/underlying_builder.rb +19 -47
  46. data/lib/fluent_command_builder/version_validator.rb +17 -28
  47. metadata +8 -6
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create(project_file=nil)
27
- b = UnderlyingBuilder.new FluentCommandBuilder::MSBuild::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::MSBuild::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::MSBuild.version path }
29
30
  c = MSBuild.new(b, project_file)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create(project_file=nil)
27
- b = UnderlyingBuilder.new FluentCommandBuilder::MSBuild::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::MSBuild::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::MSBuild.version path }
29
30
  c = MSBuild.new(b, project_file)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create(project_file=nil)
27
- b = UnderlyingBuilder.new FluentCommandBuilder::MSBuild::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::MSBuild::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::MSBuild.version path }
29
30
  c = MSBuild.new(b, project_file)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSBuild::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create(project_file=nil)
27
- b = UnderlyingBuilder.new FluentCommandBuilder::MSBuild::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::MSBuild::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::MSBuild.version path }
29
30
  c = MSBuild.new(b, project_file)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSDeploy::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSDeploy::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSDeploy::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSDeploy::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::MSDeploy::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::MSDeploy::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::MSDeploy.version path }
29
30
  c = MSDeploy.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::MSTest::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::MSTest::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::MSTest.version path }
29
30
  c = MSTest.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::MSTest::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::MSTest::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::MSTest.version path }
29
30
  c = MSTest.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::MSTest::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::MSTest::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::MSTest::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::MSTest.version path }
29
30
  c = MSTest.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::Netsh::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::Netsh::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::Netsh::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::Netsh::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::Netsh::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::Netsh::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::Netsh.version path }
29
30
  c = Netsh.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::NuGet::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::NuGet::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::NuGet::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::NuGet::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::NuGet::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::NuGet::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::NuGet.version path }
29
30
  c = NuGet.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::NUnit::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::NUnit::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::NUnit::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::NUnit::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create(input_files=nil)
27
- b = UnderlyingBuilder.new FluentCommandBuilder::NUnit::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::NUnit::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::NUnit.version path }
29
30
  c = NUnit.new(b, input_files)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::NUnit::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::NUnit::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::NUnit::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::NUnit::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create(input_files=nil)
27
- b = UnderlyingBuilder.new FluentCommandBuilder::NUnit::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::NUnit::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::NUnit.version path }
29
30
  c = NUnit.new(b, input_files)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::Rake::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::Rake::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::Rake::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::Rake::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create(task=nil)
27
- b = UnderlyingBuilder.new FluentCommandBuilder::Rake::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::Rake::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::Rake.version path }
29
30
  c = Rake.new(b, task)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::SecurityOSX::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::SecurityOSX::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::SecurityOSX::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::SecurityOSX::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::SecurityOSX::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::SecurityOSX::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::SecurityOSX.version path }
29
30
  c = SecurityOSX.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::SevenZip::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::SevenZip::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::SevenZip::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::SevenZip::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::SevenZip::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::SevenZip::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::SevenZip.version path }
29
30
  c = SevenZip.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::Simian::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::Simian::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::Simian::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::Simian::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::Simian::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::Simian::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::Simian.version path }
29
30
  c = Simian.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::TeamFoundation::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::TeamFoundation::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::TeamFoundation::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::TeamFoundation::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::TeamFoundation::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::TeamFoundation::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::TeamFoundation.version path }
29
30
  c = TeamFoundation.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::TeamFoundationTEE.version path }
29
30
  c = TeamFoundationTEE.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::TeamFoundationTEE::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::TeamFoundationTEE.version path }
29
30
  c = TeamFoundationTEE.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::XCodeBuild::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::XCodeBuild::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::XCodeBuild::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::XCodeBuild::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::XCodeBuild::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::XCodeBuild::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::XCodeBuild.version path }
29
30
  c = XCodeBuild.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -17,15 +17,16 @@ module FluentCommandBuilder
17
17
  def self.default_path=(value)
18
18
  printer = FluentCommandBuilder::Printer.new
19
19
  begin
20
- printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::XCodeBuild::COMMAND_NAME} #{VERSION}" does not exist. Path: #{value}] unless File.exist? value
20
+ printer.print_warning %Q[Default Path for command "#{FluentCommandBuilder::XCodeBuild::COMMAND_NAME}", version "#{VERSION}" does not exist. Path: #{value}] unless File.exist? value
21
21
  rescue
22
- printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::XCodeBuild::COMMAND_NAME} #{VERSION}" exists. An internal error occurred.]
22
+ printer.print_warning %Q[Failed to determine whether Default Path for command "#{FluentCommandBuilder::XCodeBuild::COMMAND_NAME}", version "#{VERSION}" exists. An internal error occurred.]
23
23
  end
24
24
  @default_path = value
25
25
  end
26
26
  def self.create
27
- b = UnderlyingBuilder.new FluentCommandBuilder::XCodeBuild::COMMAND_NAME
27
+ b = UnderlyingBuilder.new FluentCommandBuilder::XCodeBuild::COMMAND_NAME, VERSION
28
28
  b.path = self.default_path
29
+ b.actual_version_lambda = lambda { |path| FluentCommandBuilder::XCodeBuild.version path }
29
30
  c = XCodeBuild.new(b)
30
31
  yield b if block_given?
31
32
  c
@@ -1,4 +1,6 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/path_validator')
1
2
  require File.expand_path(File.dirname(__FILE__) + '/printer')
3
+ require File.expand_path(File.dirname(__FILE__) + '/version_validator')
2
4
  require File.expand_path(File.dirname(__FILE__) + '/command_executors/system_executor')
3
5
  require File.expand_path(File.dirname(__FILE__) + '/command_formatters/null_formatter')
4
6
 
@@ -19,6 +21,7 @@ module FluentCommandBuilder
19
21
  validate_should_print_on_execute
20
22
  validate_should_fail_on_error
21
23
  validate_path underlying_builder
24
+ validate_version underlying_builder
22
25
  visible_command = @formatter.format underlying_builder
23
26
  print_command visible_command
24
27
  @executor.execute(underlying_builder) do |status|
@@ -36,12 +39,14 @@ module FluentCommandBuilder
36
39
  raise "should_fail_on_error must be true for #{@executor}." if !@should_fail_on_error && @executor.will_fail_on_error?
37
40
  end
38
41
 
42
+ def validate_version(underlying_builder)
43
+ v = VersionValidator.new underlying_builder
44
+ v.validate
45
+ end
46
+
39
47
  def validate_path(underlying_builder)
40
- return unless underlying_builder.path
41
- return if File.exist? underlying_builder.path
42
- message = %Q[Path for command "#{underlying_builder.command_name}" does not exist. Path: #{underlying_builder.path}]
43
- @printer.print_error message
44
- raise message
48
+ v = PathValidator.new underlying_builder
49
+ v.validate
45
50
  end
46
51
 
47
52
  def print_command(visible_command)