kafo 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of kafo might be problematic. Click here for more details.

data/bin/kafo-configure CHANGED
@@ -5,4 +5,5 @@
5
5
 
6
6
  $LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'kafo'))
7
7
  require 'kafo_configure'
8
- exit KafoConfigure.run.exit_code
8
+ result = KafoConfigure.run
9
+ exit result.nil? ? 0 : result.exit_code
data/bin/kafofy CHANGED
@@ -24,7 +24,8 @@ if ARGV.size > 0
24
24
  require 'rubygems'
25
25
  require 'kafo'
26
26
  CONFIG_FILE = "/etc/#{name}/#{name}.yaml"
27
- KafoConfigure.run
27
+ result = KafoConfigure.run
28
+ exit result.nil? ? 0 : result.exit_code
28
29
  EOS
29
30
  File.open(script_name, 'w') { |file| file.write(content) }
30
31
  FileUtils.chmod 0755, script_name
@@ -6,22 +6,27 @@ require 'kafo/password_manager'
6
6
  class Configuration
7
7
  attr_reader :config_file, :answer_file
8
8
 
9
+ def self.colors_possible?
10
+ !`which tput 2> /dev/null`.empty? && `tput colors`.to_i > 0
11
+ end
12
+
9
13
  DEFAULT = {
10
14
  :log_dir => '/var/log/kafo',
11
- :log_level => :info,
15
+ :log_level => 'info',
12
16
  :no_prefix => false,
13
17
  :mapping => {},
14
18
  :answer_file => '/etc/kafo/kafo.yaml',
15
19
  :installer_dir => '.',
16
20
  :modules_dir => './modules',
17
- :default_values_dir => '/tmp'
21
+ :default_values_dir => '/tmp',
22
+ :colors => Configuration.colors_possible?
18
23
  }
19
24
 
20
25
  def initialize(file, persist = true)
21
26
  @config_file = file
22
27
  @persist = persist
23
28
  configure_application
24
- @logger = Logging.logger.root
29
+ @logger = KafoConfigure.logger
25
30
 
26
31
  @answer_file = app[:answer_file]
27
32
  begin
@@ -38,7 +43,7 @@ class Configuration
38
43
  return true unless @persist
39
44
  FileUtils.touch @config_file
40
45
  File.chmod 0600, @config_file
41
- File.open(@config_file, 'w') { |file| file.write(YAML.dump(configuration)) }
46
+ File.open(@config_file, 'w') { |file| file.write(format(YAML.dump(configuration))) }
42
47
  end
43
48
 
44
49
  def configure_application
@@ -101,7 +106,7 @@ class Configuration
101
106
  filename = file || answer_file
102
107
  FileUtils.touch filename
103
108
  File.chmod 0600, filename
104
- File.open(filename, 'w') { |file| file.write(config_header + YAML.dump(data)) }
109
+ File.open(filename, 'w') { |file| file.write(config_header + format(YAML.dump(data))) }
105
110
  end
106
111
 
107
112
  private
@@ -115,4 +120,8 @@ class Configuration
115
120
  params = params.select { |p| p.default != 'UNSET' }
116
121
  params.map { |param| "#{param.default}" }.join(',')
117
122
  end
123
+
124
+ def format(data)
125
+ data.gsub('!ruby/sym ', ':')
126
+ end
118
127
  end
@@ -13,14 +13,14 @@ require 'kafo/progress_bar'
13
13
 
14
14
  class KafoConfigure < Clamp::Command
15
15
  include StringHelper
16
- attr_reader :logger
17
16
 
18
17
  class << self
19
18
  attr_accessor :config, :root_dir, :config_file, :gem_root, :temp_config_file,
20
- :modules_dir, :kafo_modules_dir, :verbose
19
+ :modules_dir, :kafo_modules_dir, :verbose, :app_options, :logger
21
20
  end
22
21
 
23
22
  def initialize(*args)
23
+ self.class.logger = Logger.new
24
24
  self.class.config_file = config_file
25
25
  self.class.config = Configuration.new(self.class.config_file)
26
26
  self.class.root_dir = File.expand_path(self.class.config.app[:installer_dir])
@@ -28,11 +28,20 @@ class KafoConfigure < Clamp::Command
28
28
  self.class.modules_dir = File.expand_path(modules_dir)
29
29
  self.class.gem_root = File.join(File.dirname(__FILE__), '../../')
30
30
  self.class.kafo_modules_dir = self.class.config.app[:kafo_modules_dir] || (self.class.gem_root + '/modules')
31
- Logger.setup
32
- @logger = Logging.logger.root
33
31
  @progress_bar = nil
32
+
34
33
  super
35
- set_parameters
34
+
35
+ set_app_options
36
+ allowed = self.class.app_options.map(&:switches).flatten
37
+ allowed.map! { |s| s.include?('[no-]') ? [s.sub('[no-]', ''), s.sub('[no-]', 'no-')] : s }.flatten!
38
+ # we need to parse app config params using clamp even before run method does it
39
+ # so we limit parsing only to app config options (because of --help and later defined params)
40
+ parse ARGV.select { |a| a =~ /([a-zA-Z0-9_-]*)([= ].*)?/ && allowed.include?($1) }
41
+ parse_app_arguments
42
+ Logger.setup
43
+
44
+ set_parameters # here the params gets parsed and we need app config populated
36
45
  set_options
37
46
  end
38
47
 
@@ -45,9 +54,9 @@ class KafoConfigure < Clamp::Command
45
54
  parse_cli_arguments
46
55
 
47
56
  if (self.class.verbose = verbose?)
48
- logger.appenders = logger.appenders << ::Logging.appenders.stdout(:layout => Logger::COLOR_LAYOUT)
57
+ Logger.setup_verbose
49
58
  else
50
- @progress_bar = ProgressBar.new
59
+ @progress_bar = self.class.config.app[:colors] ? ProgressBars::Colored.new : ProgressBars::BlackWhite.new
51
60
  end
52
61
 
53
62
  unless SystemChecker.check
@@ -111,6 +120,12 @@ class KafoConfigure < Clamp::Command
111
120
  end
112
121
  end
113
122
 
123
+ def self.app_option(*args, &block)
124
+ self.app_options ||= []
125
+ self.app_options.push self.option(*args, &block)
126
+ self.app_options.last
127
+ end
128
+
114
129
  def params
115
130
  @params ||= modules.map(&:params).flatten
116
131
  rescue ModuleName => e
@@ -119,7 +134,7 @@ class KafoConfigure < Clamp::Command
119
134
  end
120
135
 
121
136
  def modules
122
- config.modules
137
+ config.modules.sort
123
138
  end
124
139
 
125
140
  def module(name)
@@ -132,6 +147,10 @@ class KafoConfigure < Clamp::Command
132
147
 
133
148
  private
134
149
 
150
+ def logger
151
+ self.class.logger
152
+ end
153
+
135
154
  def exit(code)
136
155
  self.class.exit(code)
137
156
  end
@@ -145,27 +164,47 @@ class KafoConfigure < Clamp::Command
145
164
  end
146
165
  end
147
166
 
148
- def set_options
149
- self.class.option ['-i', '--interactive'], :flag, 'Run in interactive mode'
150
- self.class.option ['-v', '--verbose'], :flag, 'Display log on STDOUT instead of progressbar'
151
- self.class.option ['-n', '--noop'], :flag, 'Run puppet in noop mode?', :default => false
152
- self.class.option ['-d', '--dont-save-answers'], :flag, 'Skip saving answers to answers.yaml?',
153
- :default => !!config.app[:dont_save_answers]
167
+ def set_app_options
168
+ self.class.app_option ['--[no-]colors'], :flag, 'Use color output on STDOUT',
169
+ :default => !!config.app[:colors]
170
+ self.class.app_option ['-d', '--dont-save-answers'], :flag, 'Skip saving answers to answers.yaml?',
171
+ :default => !!config.app[:dont_save_answers]
172
+ self.class.app_option '--ignore-undocumented', :flag, 'Ignore inconsistent parameters documentation',
173
+ :default => false
174
+ self.class.app_option ['-i', '--interactive'], :flag, 'Run in interactive mode'
175
+ self.class.app_option '--log-level', 'LEVEL', 'Log level for log file output',
176
+ :default => config.app[:log_level]
177
+ self.class.app_option ['-n', '--noop'], :flag, 'Run puppet in noop mode?',
178
+ :default => false
179
+ self.class.app_option ['-v', '--verbose'], :flag, 'Display log on STDOUT instead of progressbar'
180
+ self.class.app_option ['-l', '--verbose-log-level'], 'LEVEL', 'Log level for verbose mode output',
181
+ :default => 'info'
182
+ end
154
183
 
155
- config.modules.each do |mod|
184
+ def set_options
185
+ modules.each do |mod|
156
186
  self.class.option d("--[no-]enable-#{mod.name}"),
157
187
  :flag,
158
188
  "Enable puppet module #{mod.name}?",
159
189
  :default => mod.enabled?
160
190
  end
161
191
 
162
- params.each do |param|
192
+ params.sort.each do |param|
163
193
  doc = param.doc.nil? ? 'UNDOCUMENTED' : param.doc.join("\n")
164
194
  self.class.option parametrize(param), '', doc,
165
195
  :default => param.value, :multivalued => param.multivalued?
166
196
  end
167
197
  end
168
198
 
199
+ def parse_app_arguments
200
+ self.class.app_options.each do |option|
201
+ name = option.attribute_name
202
+ name = "#{name}?" if option.flag?
203
+ value = send(name)
204
+ config.app[name.to_sym] = value.nil? ? option.default_value : value
205
+ end
206
+ end
207
+
169
208
  def parse_cli_arguments
170
209
  # enable/disable modules according to CLI
171
210
  config.modules.each { |mod| send("enable_#{mod.name}?") ? mod.enable : mod.disable }
@@ -188,7 +227,7 @@ class KafoConfigure < Clamp::Command
188
227
  logger.info 'Running validation checks'
189
228
  results = params.map do |param|
190
229
  result = param.valid?
191
- logger.error "Parameter #{param.name} invalid" if logging && !result
230
+ progress_log(:error, "Parameter #{with_prefix(param)} invalid") if logging && !result
192
231
  result
193
232
  end
194
233
  results.all?
@@ -196,6 +235,7 @@ class KafoConfigure < Clamp::Command
196
235
 
197
236
  def run_installation
198
237
  exit_code = 0
238
+ exit_status = nil
199
239
  options = [
200
240
  '--verbose',
201
241
  '--debug',
@@ -209,19 +249,23 @@ class KafoConfigure < Clamp::Command
209
249
  PTY.spawn(command) do |stdin, stdout, pid|
210
250
  begin
211
251
  stdin.each do |line|
212
- puppet_log(*puppet_parse(line))
252
+ progress_log(*puppet_parse(line))
213
253
  @progress_bar.update(line) if @progress_bar
214
254
  end
215
- rescue Errno::EIO
216
- if PTY.respond_to?(:check) # ruby >= 1.9.2
217
- exit_code = PTY.check(pid, true).exitstatus
218
- else # ruby < 1.9.2
219
- Process.wait(pid) rescue Errno::ECHILD
220
- exit_code = $?.exitstatus
255
+ rescue Errno::EIO # we reach end of input
256
+ exit_status = PTY.check(pid, true) if PTY.respond_to?(:check) # ruby >= 1.9.2
257
+ if exit_status.nil? # process is still running or we have old ruby so we don't know
258
+ begin
259
+ Process.wait(pid)
260
+ rescue Errno::ECHILD # process could exit meanwhile so we rescue
261
+ end
262
+ exit_code = $?.exitstatus # after check $? should be set correctly
263
+ else # this should never happen (unless they change PTY.check behavior) in new ruby
264
+ exit_code = exit_code.exitstatus
221
265
  end
222
266
  end
223
267
  end
224
- rescue PTY::ChildExited => e
268
+ rescue PTY::ChildExited => e # could be raised by Process.wait on older ruby or by PTY.check
225
269
  exit_code = e.status.exitstatus
226
270
  end
227
271
  @progress_bar.close if @progress_bar
@@ -230,9 +274,9 @@ class KafoConfigure < Clamp::Command
230
274
  exit(exit_code)
231
275
  end
232
276
 
233
- def puppet_log(method, message)
234
- @progress_bar.print ANSI::Code.red { message + "\n" } if method == :error && @progress_bar
235
- Logging.logger['puppet'].send(method, message)
277
+ def progress_log(method, message)
278
+ @progress_bar.print_error(message + "\n") if method == :error && @progress_bar
279
+ logger.send(method, message)
236
280
  end
237
281
 
238
282
  def puppet_parse(line)
data/lib/kafo/logger.rb CHANGED
@@ -3,7 +3,11 @@ require 'fileutils'
3
3
  require 'logging'
4
4
 
5
5
  class Logger
6
- pattern = "[%5l %d %c] %m\n"
6
+ class << self
7
+ attr_accessor :loggers
8
+ end
9
+
10
+ PATTERN = "[%5l %d %c] %m\n"
7
11
  Logging.color_scheme('bright',
8
12
  :levels => {
9
13
  :info => :green,
@@ -17,8 +21,8 @@ class Logger
17
21
  :file => :yellow,
18
22
  :method => :yellow
19
23
  )
20
- COLOR_LAYOUT = Logging::Layouts::Pattern.new(:pattern => pattern, :color_scheme => 'bright')
21
- NOCOLOR_LAYOUT = Logging::Layouts::Pattern.new(:pattern => pattern, :color_scheme => nil)
24
+ COLOR_LAYOUT = Logging::Layouts::Pattern.new(:pattern => PATTERN, :color_scheme => 'bright')
25
+ NOCOLOR_LAYOUT = Logging::Layouts::Pattern.new(:pattern => PATTERN, :color_scheme => nil)
22
26
 
23
27
  def self.setup
24
28
  begin
@@ -27,7 +31,7 @@ class Logger
27
31
  puts "No permissions to create log dir #{KafoConfigure.config.app[:log_dir]}"
28
32
  end
29
33
 
30
- logger = Logging.logger.root
34
+ logger = Logging.logger['main']
31
35
  filename = "#{KafoConfigure.config.app[:log_dir]}/#{KafoConfigure.config.app[:log_name] || 'configure.log'}"
32
36
  begin
33
37
  logger.appenders = ::Logging.appenders.rolling_file('configure',
@@ -42,5 +46,25 @@ class Logger
42
46
  end
43
47
 
44
48
  logger.level = KafoConfigure.config.app[:log_level]
49
+ self.loggers = [logger]
50
+ end
51
+
52
+ def self.setup_verbose
53
+ logger = Logging.logger['verbose']
54
+ logger.level = KafoConfigure.config.app[:verbose_log_level]
55
+ layout = KafoConfigure.config.app[:colors] ? COLOR_LAYOUT : NOCOLOR_LAYOUT
56
+ logger.appenders = [::Logging.appenders.stdout(:layout => layout)]
57
+ self.loggers<< logger
58
+ end
59
+
60
+ # proxy to all loggers we have setup
61
+ def method_missing(*args, &block)
62
+ self.class.loggers.each do |logger|
63
+ logger.send *args, &block
64
+ end
65
+ end
66
+
67
+ def respond_to?(*args, &block)
68
+ self.class.loggers.first.respond_to? *args, &block
45
69
  end
46
70
  end
data/lib/kafo/param.rb CHANGED
@@ -70,6 +70,14 @@ class Param
70
70
  def multivalued?
71
71
  false
72
72
  end
73
+
74
+ def <=> o
75
+ unless KafoConfigure.config.app[:no_prefix]
76
+ r = self.module_name <=> o.module_name
77
+ return r unless r == 0
78
+ end
79
+ self.name <=> o.name
80
+ end
73
81
  end
74
82
 
75
83
  require 'kafo/params/boolean'
@@ -8,6 +8,8 @@ class ParamBuilder
8
8
  end
9
9
 
10
10
  def validate
11
+ return true if KafoConfigure.config.app[:ignore_undocumented]
12
+
11
13
  parameters = @data['parameters'].keys.sort
12
14
  docs = @data['docs'].keys.sort
13
15
  if parameters == docs
@@ -1,6 +1,11 @@
1
1
  require 'powerbar'
2
2
  require 'ansi/code'
3
3
 
4
+ # Progress bar base class
5
+ #
6
+ # To define new progress bar you can inherit from this class and implement
7
+ # #finite_template and #infinite_template methods. Also you may find useful to
8
+ # change more methods like #done_message or #print_error
4
9
  class ProgressBar
5
10
  def initialize
6
11
  @lines = 0
@@ -28,7 +33,7 @@ class ProgressBar
28
33
  end
29
34
 
30
35
  def close
31
- @bar.show({ :msg => ANSI::Code.green { 'Done' + (' ' * 46) },
36
+ @bar.show({ :msg => done_message,
32
37
  :done => @total == :unknown ? @bar.done + 1 : @total,
33
38
  :total => @total }, true)
34
39
  @bar.close
@@ -38,20 +43,30 @@ class ProgressBar
38
43
  @bar.print line
39
44
  end
40
45
 
46
+ def print_error(line)
47
+ print line
48
+ end
49
+
41
50
  private
42
51
 
52
+ def done_message
53
+ text = 'Done'
54
+ text + (' ' * (50 - text.length))
55
+ end
56
+
43
57
  def format(line)
44
58
  (line.tr("\r\n", '') + (' ' * 50))[0..49]
45
59
  end
46
60
 
47
61
  def finite_template
48
- 'Installing'.ljust(22) +
49
- ANSI::Code.yellow { ' ${<msg>}' } +
50
- ANSI::Code.green { ' [${<percent>%}]' } +
51
- ' [${<bar>}]'
62
+ 'Installing... [${<percent>%}]'
52
63
  end
53
64
 
54
65
  def infinite_template
55
- 'Preparing installation' + ANSI::Code.yellow { ' ${<msg>}' }
66
+ 'Installing...'
56
67
  end
68
+
57
69
  end
70
+
71
+ require 'kafo/progress_bars/colored'
72
+ require 'kafo/progress_bars/black_white'
@@ -0,0 +1,15 @@
1
+ module ProgressBars
2
+ class BlackWhite < ProgressBar
3
+
4
+ private
5
+
6
+ def finite_template
7
+ 'Installing'.ljust(22) + ' ${<msg>} [${<percent>%}] [${<bar>}]'
8
+ end
9
+
10
+ def infinite_template
11
+ 'Preparing installation ${<msg>}'
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,26 @@
1
+ module ProgressBars
2
+ class Colored < ProgressBar
3
+
4
+ def print_error(line)
5
+ print ANSI::Code.red { line }
6
+ end
7
+
8
+ private
9
+
10
+ def done_message
11
+ ANSI::Code.green { super }
12
+ end
13
+
14
+ def finite_template
15
+ 'Installing'.ljust(22) +
16
+ ANSI::Code.yellow { ' ${<msg>}' } +
17
+ ANSI::Code.green { ' [${<percent>%}]' } +
18
+ ' [${<bar>}]'
19
+ end
20
+
21
+ def infinite_template
22
+ 'Preparing installation' + ANSI::Code.yellow { ' ${<msg>}' }
23
+ end
24
+
25
+ end
26
+ end
@@ -3,7 +3,7 @@ class PuppetCommand
3
3
  def initialize(command, options = [])
4
4
  @command = command
5
5
  @options = options.push("--modulepath #{modules_path}")
6
- @logger = Logging.logger.root
6
+ @logger = KafoConfigure.logger
7
7
  end
8
8
 
9
9
  def custom_answer_file
@@ -16,7 +16,7 @@ class PuppetModule
16
16
  @manifest_path = File.join(KafoConfigure.root_dir, '/modules/', module_manifest_path)
17
17
  @parser = parser
18
18
  @validations = []
19
- @logger = Logging.logger.root
19
+ @logger = KafoConfigure.logger
20
20
  end
21
21
 
22
22
  def enabled?
@@ -61,6 +61,10 @@ class PuppetModule
61
61
  Hash[params.map { |param| [param.name, param.value] }]
62
62
  end
63
63
 
64
+ def <=> o
65
+ self.name <=> o.name
66
+ end
67
+
64
68
  private
65
69
 
66
70
  # mapping from configuration with stringified keys
@@ -8,7 +8,7 @@ class Validator
8
8
  end
9
9
 
10
10
  @params = params
11
- @logger = Logging.logger.root
11
+ @logger = KafoConfigure.logger
12
12
 
13
13
  @cache ||= Hash.new do |hash, key|
14
14
  @logger.debug "Looked for #{key}"
data/lib/kafo/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # encoding: UTF-8
2
2
  module Kafo
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.0"
4
4
  end
metadata CHANGED
@@ -1,151 +1,166 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: kafo
3
- version: !ruby/object:Gem::Version
4
- version: 0.1.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
5
11
  platform: ruby
6
- authors:
12
+ authors:
7
13
  - Marek Hulan
8
14
  autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
- date: 2013-09-30 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2013-10-07 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
14
22
  name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '1.3'
20
- type: :development
21
23
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
24
27
  - - ~>
25
- - !ruby/object:Gem::Version
26
- version: '1.3'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
28
+ - !ruby/object:Gem::Version
29
+ hash: 9
30
+ segments:
31
+ - 1
32
+ - 3
33
+ version: "1.3"
34
34
  type: :development
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
35
38
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: minitest
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ~>
46
- - !ruby/object:Gem::Version
47
- version: 4.7.5
39
+ requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: 3
45
+ segments:
46
+ - 0
47
+ version: "0"
48
48
  type: :development
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: minitest
49
52
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
53
+ requirement: &id003 !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
52
56
  - - ~>
53
- - !ruby/object:Gem::Version
57
+ - !ruby/object:Gem::Version
58
+ hash: 41
59
+ segments:
60
+ - 4
61
+ - 7
62
+ - 5
54
63
  version: 4.7.5
55
- - !ruby/object:Gem::Dependency
64
+ type: :development
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
56
67
  name: puppet
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
68
  prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rdoc
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '>='
74
- - !ruby/object:Gem::Version
75
- version: 3.9.0
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
76
78
  type: :runtime
79
+ version_requirements: *id004
80
+ - !ruby/object:Gem::Dependency
81
+ name: rdoc
77
82
  prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '>='
81
- - !ruby/object:Gem::Version
83
+ requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 35
89
+ segments:
90
+ - 3
91
+ - 9
92
+ - 0
82
93
  version: 3.9.0
83
- - !ruby/object:Gem::Dependency
84
- name: logging
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - '>='
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
94
  type: :runtime
95
+ version_requirements: *id005
96
+ - !ruby/object:Gem::Dependency
97
+ name: logging
91
98
  prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - '>='
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: clamp
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - '>='
102
- - !ruby/object:Gem::Version
103
- version: '0'
99
+ requirement: &id006 !ruby/object:Gem::Requirement
100
+ none: false
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ hash: 3
105
+ segments:
106
+ - 0
107
+ version: "0"
104
108
  type: :runtime
109
+ version_requirements: *id006
110
+ - !ruby/object:Gem::Dependency
111
+ name: clamp
105
112
  prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: highline
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - '>='
116
- - !ruby/object:Gem::Version
117
- version: '0'
113
+ requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ hash: 3
119
+ segments:
120
+ - 0
121
+ version: "0"
118
122
  type: :runtime
123
+ version_requirements: *id007
124
+ - !ruby/object:Gem::Dependency
125
+ name: highline
119
126
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - '>='
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: powerbar
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - '>='
130
- - !ruby/object:Gem::Version
131
- version: '0'
127
+ requirement: &id008 !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ hash: 3
133
+ segments:
134
+ - 0
135
+ version: "0"
132
136
  type: :runtime
137
+ version_requirements: *id008
138
+ - !ruby/object:Gem::Dependency
139
+ name: powerbar
133
140
  prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - '>='
137
- - !ruby/object:Gem::Version
138
- version: '0'
141
+ requirement: &id009 !ruby/object:Gem::Requirement
142
+ none: false
143
+ requirements:
144
+ - - ">="
145
+ - !ruby/object:Gem::Version
146
+ hash: 3
147
+ segments:
148
+ - 0
149
+ version: "0"
150
+ type: :runtime
151
+ version_requirements: *id009
139
152
  description: A gem for making installations based on puppet user friendly
140
- email:
153
+ email:
141
154
  - ares@igloonet.cz
142
- executables:
155
+ executables:
143
156
  - kafo-configure
144
157
  - kafo-export-params
145
158
  - kafofy
146
159
  extensions: []
160
+
147
161
  extra_rdoc_files: []
148
- files:
162
+
163
+ files:
149
164
  - bin/kafo-configure
150
165
  - bin/kafo-export-params
151
166
  - bin/kafofy
@@ -169,6 +184,8 @@ files:
169
184
  - lib/kafo/kafo_configure.rb
170
185
  - lib/kafo/string_helper.rb
171
186
  - lib/kafo/logger.rb
187
+ - lib/kafo/progress_bars/colored.rb
188
+ - lib/kafo/progress_bars/black_white.rb
172
189
  - lib/kafo/param.rb
173
190
  - lib/kafo/version.rb
174
191
  - lib/kafo/param_builder.rb
@@ -198,30 +215,39 @@ files:
198
215
  - LICENSE.txt
199
216
  - Rakefile
200
217
  - README.md
218
+ has_rdoc: true
201
219
  homepage: https://github.com/theforeman/kafo
202
- licenses:
220
+ licenses:
203
221
  - GPLv3+
204
- metadata: {}
205
222
  post_install_message:
206
223
  rdoc_options: []
207
- require_paths:
224
+
225
+ require_paths:
208
226
  - lib
209
- required_ruby_version: !ruby/object:Gem::Requirement
210
- requirements:
211
- - - '>='
212
- - !ruby/object:Gem::Version
213
- version: '0'
214
- required_rubygems_version: !ruby/object:Gem::Requirement
215
- requirements:
216
- - - '>='
217
- - !ruby/object:Gem::Version
218
- version: '0'
227
+ required_ruby_version: !ruby/object:Gem::Requirement
228
+ none: false
229
+ requirements:
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ hash: 3
233
+ segments:
234
+ - 0
235
+ version: "0"
236
+ required_rubygems_version: !ruby/object:Gem::Requirement
237
+ none: false
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ hash: 3
242
+ segments:
243
+ - 0
244
+ version: "0"
219
245
  requirements: []
246
+
220
247
  rubyforge_project:
221
- rubygems_version: 2.0.3
248
+ rubygems_version: 1.6.2
222
249
  signing_key:
223
- specification_version: 4
224
- summary: If you write puppet modules for installing your software, you can use kafo
225
- to create powerful installer
250
+ specification_version: 3
251
+ summary: If you write puppet modules for installing your software, you can use kafo to create powerful installer
226
252
  test_files: []
227
- has_rdoc:
253
+
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 7a0d5d908f8ea926b840cdd83bf863de5c3acd2a
4
- data.tar.gz: 34fb06c977764e7548ec837640e781a6599b8fe8
5
- SHA512:
6
- metadata.gz: 7f5b4cce32ae6eafb2b02397acdf830a8745c4c32ca465f76519de55b44ea0e6df3a2db6f6ef194f452b871c5c316a7497cde0f731ef0c438c287363d26f3b15
7
- data.tar.gz: 48f445d23ff5c7026b5876627a4fd4b7480779b37ebca3394af4b396290a61d6413eb2c3a7b0dd49b52bd8b3ccaeae4c688edd889d07e590bfb553dc9b2dbbc0