test-kitchen 1.14.1 → 1.14.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (127) hide show
  1. checksums.yaml +4 -4
  2. data/Berksfile +1 -1
  3. data/CHANGELOG.md +7 -0
  4. data/Gemfile +1 -1
  5. data/Guardfile +5 -5
  6. data/Rakefile +5 -5
  7. data/bin/kitchen +1 -1
  8. data/features/step_definitions/gem_steps.rb +6 -6
  9. data/features/support/env.rb +6 -7
  10. data/lib/kitchen.rb +5 -7
  11. data/lib/kitchen/base64_stream.rb +2 -8
  12. data/lib/kitchen/cli.rb +76 -80
  13. data/lib/kitchen/collection.rb +0 -2
  14. data/lib/kitchen/color.rb +7 -9
  15. data/lib/kitchen/command.rb +0 -4
  16. data/lib/kitchen/command/action.rb +0 -3
  17. data/lib/kitchen/command/console.rb +4 -7
  18. data/lib/kitchen/command/diagnose.rb +7 -14
  19. data/lib/kitchen/command/driver_discover.rb +1 -4
  20. data/lib/kitchen/command/exec.rb +0 -3
  21. data/lib/kitchen/command/list.rb +9 -12
  22. data/lib/kitchen/command/login.rb +0 -3
  23. data/lib/kitchen/command/package.rb +0 -3
  24. data/lib/kitchen/command/sink.rb +6 -9
  25. data/lib/kitchen/command/test.rb +1 -4
  26. data/lib/kitchen/config.rb +25 -27
  27. data/lib/kitchen/configurable.rb +26 -31
  28. data/lib/kitchen/data_munger.rb +34 -36
  29. data/lib/kitchen/diagnostic.rb +5 -7
  30. data/lib/kitchen/driver.rb +3 -5
  31. data/lib/kitchen/driver/base.rb +0 -3
  32. data/lib/kitchen/driver/dummy.rb +0 -3
  33. data/lib/kitchen/driver/proxy.rb +0 -3
  34. data/lib/kitchen/driver/ssh_base.rb +13 -16
  35. data/lib/kitchen/errors.rb +11 -16
  36. data/lib/kitchen/generator/driver_create.rb +18 -21
  37. data/lib/kitchen/generator/init.rb +21 -26
  38. data/lib/kitchen/instance.rb +19 -23
  39. data/lib/kitchen/lazy_hash.rb +1 -2
  40. data/lib/kitchen/loader/yaml.rb +22 -25
  41. data/lib/kitchen/logger.rb +9 -14
  42. data/lib/kitchen/logging.rb +0 -3
  43. data/lib/kitchen/login_command.rb +0 -2
  44. data/lib/kitchen/metadata_chopper.rb +0 -2
  45. data/lib/kitchen/platform.rb +1 -3
  46. data/lib/kitchen/provisioner.rb +3 -5
  47. data/lib/kitchen/provisioner/base.rb +2 -5
  48. data/lib/kitchen/provisioner/chef/berkshelf.rb +1 -5
  49. data/lib/kitchen/provisioner/chef/common_sandbox.rb +24 -29
  50. data/lib/kitchen/provisioner/chef/librarian.rb +2 -6
  51. data/lib/kitchen/provisioner/chef/policyfile.rb +4 -8
  52. data/lib/kitchen/provisioner/chef_apply.rb +14 -17
  53. data/lib/kitchen/provisioner/chef_base.rb +43 -46
  54. data/lib/kitchen/provisioner/chef_solo.rb +10 -13
  55. data/lib/kitchen/provisioner/chef_zero.rb +22 -29
  56. data/lib/kitchen/provisioner/dummy.rb +0 -3
  57. data/lib/kitchen/provisioner/shell.rb +6 -9
  58. data/lib/kitchen/rake_tasks.rb +4 -6
  59. data/lib/kitchen/shell_out.rb +3 -5
  60. data/lib/kitchen/ssh.rb +16 -22
  61. data/lib/kitchen/state_file.rb +3 -5
  62. data/lib/kitchen/suite.rb +0 -2
  63. data/lib/kitchen/thor_tasks.rb +2 -4
  64. data/lib/kitchen/transport.rb +3 -5
  65. data/lib/kitchen/transport/base.rb +1 -7
  66. data/lib/kitchen/transport/dummy.rb +0 -4
  67. data/lib/kitchen/transport/ssh.rb +41 -47
  68. data/lib/kitchen/transport/winrm.rb +41 -40
  69. data/lib/kitchen/util.rb +1 -3
  70. data/lib/kitchen/verifier.rb +3 -5
  71. data/lib/kitchen/verifier/base.rb +2 -5
  72. data/lib/kitchen/verifier/busser.rb +24 -24
  73. data/lib/kitchen/verifier/dummy.rb +0 -3
  74. data/lib/kitchen/verifier/shell.rb +1 -3
  75. data/lib/kitchen/version.rb +1 -1
  76. data/lib/vendor/hash_recursive_merge.rb +0 -2
  77. data/spec/kitchen/base64_stream_spec.rb +3 -6
  78. data/spec/kitchen/cli_spec.rb +0 -2
  79. data/spec/kitchen/collection_spec.rb +4 -8
  80. data/spec/kitchen/color_spec.rb +0 -3
  81. data/spec/kitchen/config_spec.rb +91 -106
  82. data/spec/kitchen/configurable_spec.rb +44 -76
  83. data/spec/kitchen/data_munger_spec.rb +1178 -1247
  84. data/spec/kitchen/diagnostic_spec.rb +37 -38
  85. data/spec/kitchen/driver/base_spec.rb +7 -14
  86. data/spec/kitchen/driver/dummy_spec.rb +1 -7
  87. data/spec/kitchen/driver/proxy_spec.rb +2 -7
  88. data/spec/kitchen/driver/ssh_base_spec.rb +128 -149
  89. data/spec/kitchen/driver_spec.rb +7 -13
  90. data/spec/kitchen/errors_spec.rb +50 -60
  91. data/spec/kitchen/instance_spec.rb +217 -294
  92. data/spec/kitchen/lazy_hash_spec.rb +14 -18
  93. data/spec/kitchen/loader/yaml_spec.rb +201 -227
  94. data/spec/kitchen/logger_spec.rb +7 -15
  95. data/spec/kitchen/logging_spec.rb +1 -4
  96. data/spec/kitchen/login_command_spec.rb +3 -4
  97. data/spec/kitchen/metadata_chopper_spec.rb +0 -3
  98. data/spec/kitchen/platform_spec.rb +31 -32
  99. data/spec/kitchen/provisioner/base_spec.rb +22 -41
  100. data/spec/kitchen/provisioner/chef/policyfile_spec.rb +15 -15
  101. data/spec/kitchen/provisioner/chef_apply_spec.rb +8 -13
  102. data/spec/kitchen/provisioner/chef_base_spec.rb +150 -182
  103. data/spec/kitchen/provisioner/chef_solo_spec.rb +58 -72
  104. data/spec/kitchen/provisioner/chef_zero_spec.rb +99 -125
  105. data/spec/kitchen/provisioner/dummy_spec.rb +8 -11
  106. data/spec/kitchen/provisioner/shell_spec.rb +86 -103
  107. data/spec/kitchen/provisioner_spec.rb +5 -11
  108. data/spec/kitchen/shell_out_spec.rb +15 -19
  109. data/spec/kitchen/ssh_spec.rb +16 -35
  110. data/spec/kitchen/state_file_spec.rb +6 -11
  111. data/spec/kitchen/suite_spec.rb +5 -6
  112. data/spec/kitchen/transport/base_spec.rb +6 -14
  113. data/spec/kitchen/transport/ssh_spec.rb +39 -64
  114. data/spec/kitchen/transport/winrm_spec.rb +99 -127
  115. data/spec/kitchen/transport_spec.rb +7 -13
  116. data/spec/kitchen/util_spec.rb +17 -26
  117. data/spec/kitchen/verifier/base_spec.rb +24 -40
  118. data/spec/kitchen/verifier/busser_spec.rb +38 -68
  119. data/spec/kitchen/verifier/dummy_spec.rb +8 -11
  120. data/spec/kitchen/verifier/shell_spec.rb +14 -17
  121. data/spec/kitchen/verifier_spec.rb +7 -13
  122. data/spec/kitchen_spec.rb +4 -6
  123. data/spec/spec_helper.rb +1 -1
  124. data/spec/support/powershell_max_size_spec.rb +1 -2
  125. data/support/chef-client-zero.rb +3 -4
  126. data/test-kitchen.gemspec +4 -6
  127. metadata +9 -9
@@ -19,14 +19,12 @@
19
19
  require "delegate"
20
20
 
21
21
  module Kitchen
22
-
23
22
  # Delegate class which adds the ability to find single and multiple
24
23
  # objects by their #name in an Array. Hey, it's better than monkey-patching
25
24
  # Array, right?
26
25
  #
27
26
  # @author Fletcher Nichol <fnichol@nichol.ca>
28
27
  class Collection < SimpleDelegator
29
-
30
28
  # Returns a single object by its name, or nil if none are found.
31
29
  #
32
30
  # @param name [String] name of object
@@ -17,26 +17,24 @@
17
17
  # limitations under the License.
18
18
 
19
19
  module Kitchen
20
-
21
20
  # Utility methods to help ouput colorized text in a terminal. The
22
21
  # implementation is a compressed mashup of code from the Thor and Foreman
23
22
  # projects.
24
23
  #
25
24
  # @author Fletcher Nichol <fnichol@nichol.ca>
26
25
  module Color
27
-
28
26
  ANSI = {
29
- :reset => 0, :black => 30, :red => 31, :green => 32, :yellow => 33,
30
- :blue => 34, :magenta => 35, :cyan => 36, :white => 37,
31
- :bright_black => 90, :bright_red => 91, :bright_green => 92,
32
- :bright_yellow => 93, :bright_blue => 94, :bright_magenta => 95,
33
- :bright_cyan => 96, :bright_white => 97
27
+ reset: 0, black: 30, red: 31, green: 32, yellow: 33,
28
+ blue: 34, magenta: 35, cyan: 36, white: 37,
29
+ bright_black: 90, bright_red: 91, bright_green: 92,
30
+ bright_yellow: 93, bright_blue: 94, bright_magenta: 95,
31
+ bright_cyan: 96, bright_white: 97
34
32
  }.freeze
35
33
 
36
- COLORS = %w[
34
+ COLORS = %w{
37
35
  cyan yellow green magenta blue bright_cyan bright_yellow
38
36
  bright_green bright_magenta bright_blue
39
- ].freeze
37
+ }.freeze
40
38
 
41
39
  # Returns an ansi escaped string representing a color control sequence.
42
40
  #
@@ -19,14 +19,11 @@
19
19
  require "thread"
20
20
 
21
21
  module Kitchen
22
-
23
22
  module Command
24
-
25
23
  # Base class for CLI commands.
26
24
  #
27
25
  # @author Fletcher Nichol <fnichol@nichol.ca>
28
26
  class Base
29
-
30
27
  include Logging
31
28
 
32
29
  # Contstructs a new Command object.
@@ -150,7 +147,6 @@ module Kitchen
150
147
  #
151
148
  # @author Fletcher Nichol <fnichol@nichol.ca>
152
149
  module RunAction
153
-
154
150
  # Run an instance action (create, converge, setup, verify, destroy) on
155
151
  # a collection of instances. The instance actions will take place in a
156
152
  # seperate thread of execution which may or may not be running
@@ -21,14 +21,11 @@ require "kitchen/command"
21
21
  require "benchmark"
22
22
 
23
23
  module Kitchen
24
-
25
24
  module Command
26
-
27
25
  # Command to run a single action one or more instances.
28
26
  #
29
27
  # @author Fletcher Nichol <fnichol@nichol.ca>
30
28
  class Action < Kitchen::Command::Base
31
-
32
29
  include RunAction
33
30
 
34
31
  # Invoke the command.
@@ -19,18 +19,15 @@
19
19
  require "kitchen/command"
20
20
 
21
21
  module Kitchen
22
-
23
22
  module Command
24
-
25
23
  # Command to launch a Pry-based Kitchen console..
26
24
  #
27
25
  # @author Fletcher Nichol <fnichol@nichol.ca>
28
26
  class Console < Kitchen::Command::Base
29
-
30
27
  # Invoke the command.
31
28
  def call
32
29
  require "pry"
33
- Pry.start(@config, :prompt => [prompt(">"), prompt("*")])
30
+ Pry.start(@config, prompt: [prompt(">"), prompt("*")])
34
31
  rescue LoadError
35
32
  warn %{Make sure you have the pry gem installed. You can install it with:}
36
33
  warn %{`gem install pry` or including 'gem "pry"' in your Gemfile.}
@@ -45,13 +42,13 @@ module Kitchen
45
42
  # @return [proc] a prompt proc
46
43
  # @api private
47
44
  def prompt(char)
48
- proc { |target_self, nest_level, pry|
45
+ proc do |target_self, nest_level, pry|
49
46
  [
50
47
  "[#{pry.input_array.size}] ",
51
48
  "kc(#{Pry.view_clip(target_self.class)})",
52
- "#{":#{nest_level}" unless nest_level.zero?}#{char} "
49
+ "#{":#{nest_level}" unless nest_level.zero?}#{char} ",
53
50
  ].join
54
- }
51
+ end
55
52
  end
56
53
  end
57
54
  end
@@ -22,14 +22,11 @@ require "kitchen/diagnostic"
22
22
  require "yaml"
23
23
 
24
24
  module Kitchen
25
-
26
25
  module Command
27
-
28
26
  # Command to log into to instance.
29
27
  #
30
28
  # @author Fletcher Nichol <fnichol@nichol.ca>
31
29
  class Diagnose < Kitchen::Command::Base
32
-
33
30
  # Invoke the command.
34
31
  def call
35
32
  instances = record_failure { load_instances }
@@ -37,7 +34,7 @@ module Kitchen
37
34
  loader = record_failure { load_loader }
38
35
 
39
36
  puts Kitchen::Diagnostic.new(
40
- :loader => loader, :instances => instances, :plugins => plugins?
37
+ loader: loader, instances: instances, plugins: plugins?
41
38
  ).read.to_yaml
42
39
  end
43
40
 
@@ -64,11 +61,7 @@ module Kitchen
64
61
  # @return [Hash,nil] a hash or nil
65
62
  # @api private
66
63
  def load_loader
67
- if options[:all] || options[:loader]
68
- @loader
69
- else
70
- nil
71
- end
64
+ @loader if options[:all] || options[:loader]
72
65
  end
73
66
 
74
67
  # Returns a hash with exception detail if an exception is raised in the
@@ -80,11 +73,11 @@ module Kitchen
80
73
  yield
81
74
  rescue => e
82
75
  {
83
- :error => {
84
- :exception => e.inspect,
85
- :message => e.message,
86
- :backtrace => e.backtrace
87
- }
76
+ error: {
77
+ exception: e.inspect,
78
+ message: e.message,
79
+ backtrace: e.backtrace,
80
+ },
88
81
  }
89
82
  end
90
83
  end
@@ -27,14 +27,11 @@ rescue LoadError # rubocop:disable Lint/HandleExceptions
27
27
  end
28
28
 
29
29
  module Kitchen
30
-
31
30
  module Command
32
-
33
31
  # Command to discover drivers published on RubyGems.
34
32
  #
35
33
  # @author Fletcher Nichol <fnichol@nichol.ca>
36
34
  class DriverDiscover < Kitchen::Command::Base
37
-
38
35
  # Invoke the command.
39
36
  def call
40
37
  # We are introducing the idea of using the Chef configuration as a
@@ -48,7 +45,7 @@ module Kitchen
48
45
  specs = fetch_gem_specs.sort { |x, y| x[0] <=> y[0] }
49
46
  specs = specs[0, 49].push(["...", "..."]) if specs.size > 49
50
47
  specs = specs.unshift(["Gem Name", "Latest Stable Release"])
51
- print_table(specs, :indent => 4)
48
+ print_table(specs, indent: 4)
52
49
  end
53
50
 
54
51
  private
@@ -19,14 +19,11 @@
19
19
  require "kitchen/command"
20
20
 
21
21
  module Kitchen
22
-
23
22
  module Command
24
-
25
23
  # Execute command on remote instance.
26
24
  #
27
25
  # @author SAWANOBORI Yukihiko (<sawanoboriyu@higanworks.com>)
28
26
  class Exec < Kitchen::Command::Base
29
-
30
27
  # Invoke the command.
31
28
  def call
32
29
  results = parse_subcommand(args.first)
@@ -20,14 +20,11 @@ require "kitchen/command"
20
20
  require "json"
21
21
 
22
22
  module Kitchen
23
-
24
23
  module Command
25
-
26
24
  # Command to list one or more instances.
27
25
  #
28
26
  # @author Fletcher Nichol <fnichol@nichol.ca>
29
27
  class List < Kitchen::Command::Base
30
-
31
28
  # Invoke the command.
32
29
  def call
33
30
  result = parse_subcommand(args.first)
@@ -68,7 +65,7 @@ module Kitchen
68
65
  color_pad(instance.verifier.name),
69
66
  color_pad(instance.transport.name),
70
67
  format_last_action(instance.last_action),
71
- format_last_error(instance.last_error)
68
+ format_last_error(instance.last_error),
72
69
  ]
73
70
  end
74
71
 
@@ -111,7 +108,7 @@ module Kitchen
111
108
  colorize("Provisioner", :green), colorize("Verifier", :green),
112
109
  colorize("Transport", :green), colorize("Last Action", :green),
113
110
  colorize("Last Error", :green)
114
- ]
111
+ ],
115
112
  ]
116
113
  table += Array(result).map { |i| display_instance(i) }
117
114
  print_table(table)
@@ -123,13 +120,13 @@ module Kitchen
123
120
  # @api private
124
121
  def to_hash(result)
125
122
  {
126
- :instance => result.name,
127
- :driver => result.driver.name,
128
- :provisioner => result.provisioner.name,
129
- :verifier => result.verifier.name,
130
- :transport => result.transport.name,
131
- :last_action => result.last_action,
132
- :last_error => result.last_error
123
+ instance: result.name,
124
+ driver: result.driver.name,
125
+ provisioner: result.provisioner.name,
126
+ verifier: result.verifier.name,
127
+ transport: result.transport.name,
128
+ last_action: result.last_action,
129
+ last_error: result.last_error,
133
130
  }
134
131
  end
135
132
 
@@ -19,14 +19,11 @@
19
19
  require "kitchen/command"
20
20
 
21
21
  module Kitchen
22
-
23
22
  module Command
24
-
25
23
  # Command to log into to instance.
26
24
  #
27
25
  # @author Fletcher Nichol <fnichol@nichol.ca>
28
26
  class Login < Kitchen::Command::Base
29
-
30
27
  # Invoke the command.
31
28
  def call
32
29
  results = parse_subcommand(args.first)
@@ -16,13 +16,10 @@
16
16
  require "kitchen/command"
17
17
 
18
18
  module Kitchen
19
-
20
19
  module Command
21
-
22
20
  # Execute command on remote instance.
23
21
  #
24
22
  class Package < Kitchen::Command::Base
25
-
26
23
  # Invoke the command.
27
24
  def call
28
25
  results = parse_subcommand(args.first)
@@ -19,34 +19,31 @@
19
19
  require "kitchen/command"
20
20
 
21
21
  module Kitchen
22
-
23
22
  module Command
24
-
25
23
  # Command to... include the sink.
26
24
  #
27
25
  # @author Seth Vargo <sethvargo@gmail.com>
28
26
  class Sink < Kitchen::Command::Base
29
-
30
27
  # Invoke the command.
31
28
  def call
32
29
  puts [
33
30
  "",
34
31
  " ___ ",
35
32
  " ' _ '. ",
36
- " / /` `\\ \\ ",
33
+ ' / /` `\\ \\ ',
37
34
  " | | [__] ",
38
35
  " | | {{ ",
39
36
  " | | }} ",
40
37
  " _ | | _ {{ ",
41
38
  " ___________<_>_| |_<_>}}________ ",
42
39
  " .=======^=(___)=^={{====. ",
43
- " / .----------------}}---. \\ ",
44
- " / / {{ \\ \\ ",
45
- " / / }} \\ \\ ",
40
+ ' / .----------------}}---. \\ ',
41
+ ' / / {{ \\ \\ ',
42
+ ' / / }} \\ \\ ',
46
43
  " ( '=========================' ) ",
47
44
  " '-----------------------------' ",
48
- " ", # necessary newline
49
- ""
45
+ " ", # necessary newline
46
+ "",
50
47
  ].map(&:rstrip).join("\n")
51
48
  end
52
49
  end
@@ -21,19 +21,16 @@ require "kitchen/command"
21
21
  require "benchmark"
22
22
 
23
23
  module Kitchen
24
-
25
24
  module Command
26
-
27
25
  # Command to test one or more instances.
28
26
  #
29
27
  # @author Fletcher Nichol <fnichol@nichol.ca>
30
28
  class Test < Kitchen::Command::Base
31
-
32
29
  include RunAction
33
30
 
34
31
  # Invoke the command.
35
32
  def call
36
- if !%w[passing always never].include?(options[:destroy])
33
+ unless %w{passing always never}.include?(options[:destroy])
37
34
  raise ArgumentError, "Destroy mode must be passing, always, or never."
38
35
  end
39
36
 
@@ -17,7 +17,6 @@
17
17
  # limitations under the License.
18
18
 
19
19
  module Kitchen
20
-
21
20
  # Base configuration class for Kitchen. This class exposes configuration such
22
21
  # as the location of the Kitchen config file, instances, log_levels, etc.
23
22
  # This object is a factory object, meaning that it is responsible for
@@ -48,7 +47,6 @@ module Kitchen
48
47
  #
49
48
  # @author Fletcher Nichol <fnichol@nichol.ca>
50
49
  class Config
51
-
52
50
  # @return [String] the absolute path to the root of a Test Kitchen project
53
51
  # @api private
54
52
  attr_reader :kitchen_root
@@ -209,18 +207,18 @@ module Kitchen
209
207
  # @api private
210
208
  def kitchen_config
211
209
  @kitchen_config ||= {
212
- :defaults => {
213
- :driver => Driver::DEFAULT_PLUGIN,
214
- :provisioner => Provisioner::DEFAULT_PLUGIN,
215
- :verifier => Verifier::DEFAULT_PLUGIN,
216
- :transport => lambda { |_suite, platform|
210
+ defaults: {
211
+ driver: Driver::DEFAULT_PLUGIN,
212
+ provisioner: Provisioner::DEFAULT_PLUGIN,
213
+ verifier: Verifier::DEFAULT_PLUGIN,
214
+ transport: lambda do |_suite, platform|
217
215
  platform =~ /^win/i ? "winrm" : Transport::DEFAULT_PLUGIN
218
- }
216
+ end,
219
217
  },
220
- :kitchen_root => kitchen_root,
221
- :test_base_path => test_base_path,
222
- :log_level => log_level,
223
- :log_overwrite => log_overwrite
218
+ kitchen_root: kitchen_root,
219
+ test_base_path: test_base_path,
220
+ log_level: log_level,
221
+ log_overwrite: log_overwrite,
224
222
  }
225
223
  end
226
224
 
@@ -245,14 +243,14 @@ module Kitchen
245
243
  # @api private
246
244
  def new_instance(suite, platform, index)
247
245
  Instance.new(
248
- :driver => new_driver(suite, platform),
249
- :logger => new_instance_logger(suite, platform, index),
250
- :suite => suite,
251
- :platform => platform,
252
- :provisioner => new_provisioner(suite, platform),
253
- :transport => new_transport(suite, platform),
254
- :verifier => new_verifier(suite, platform),
255
- :state_file => new_state_file(suite, platform)
246
+ driver: new_driver(suite, platform),
247
+ logger: new_instance_logger(suite, platform, index),
248
+ suite: suite,
249
+ platform: platform,
250
+ provisioner: new_provisioner(suite, platform),
251
+ transport: new_transport(suite, platform),
252
+ verifier: new_verifier(suite, platform),
253
+ state_file: new_state_file(suite, platform)
256
254
  )
257
255
  end
258
256
 
@@ -268,13 +266,13 @@ module Kitchen
268
266
  name = instance_name(suite, platform)
269
267
  log_location = File.join(log_root, "#{name}.log").to_s
270
268
  Logger.new(
271
- :stdout => STDOUT,
272
- :color => Color::COLORS[index % Color::COLORS.size].to_sym,
273
- :logdev => log_location,
274
- :level => Util.to_logger_level(log_level),
275
- :log_overwrite => log_overwrite,
276
- :progname => name,
277
- :colorize => @colorize
269
+ stdout: STDOUT,
270
+ color: Color::COLORS[index % Color::COLORS.size].to_sym,
271
+ logdev: log_location,
272
+ level: Util.to_logger_level(log_level),
273
+ log_overwrite: log_overwrite,
274
+ progname: name,
275
+ colorize: @colorize
278
276
  )
279
277
  end
280
278