Class: Kafo::KafoConfigure
- Inherits:
-
Clamp::Command
- Object
- Clamp::Command
- Kafo::KafoConfigure
show all
- Includes:
- StringHelper
- Defined in:
- lib/kafo/kafo_configure.rb
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#dashize, #parametrize, #underscore, #with_prefix
Constructor Details
Returns a new instance of KafoConfigure.
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/kafo/kafo_configure.rb', line 42
def initialize(*args)
self.class.logger = Logger.new
self.class.config_file = config_file
self.class.config = Configuration.new(self.class.config_file)
self.class.root_dir = File.expand_path(self.class.config.app[:installer_dir])
modules_dir = self.class.config.app[:modules_dir] || (self.class.config.app[:installer_dir] + '/modules')
self.class.modules_dir = File.expand_path(modules_dir)
self.class.gem_root = File.join(File.dirname(__FILE__), '../../')
self.class.kafo_modules_dir = self.class.config.app[:kafo_modules_dir] || (self.class.gem_root + '/modules')
@progress_bar = nil
self.class.hooking.load
self.class.hooking.kafo = self
super
self.class.hooking.execute(:boot)
set_app_options
parse clamp_app_arguments
parse_app_arguments
Logger.setup
ColorScheme.new(config).setup
self.class.hooking.execute(:init)
set_parameters set_options
end
|
Class Attribute Details
.app_options ⇒ Object
Returns the value of attribute app_options.
29
30
31
|
# File 'lib/kafo/kafo_configure.rb', line 29
def app_options
@app_options
end
|
.config ⇒ Object
Returns the value of attribute config.
29
30
31
|
# File 'lib/kafo/kafo_configure.rb', line 29
def config
@config
end
|
.config_file ⇒ Object
Returns the value of attribute config_file.
29
30
31
|
# File 'lib/kafo/kafo_configure.rb', line 29
def config_file
@config_file
end
|
.gem_root ⇒ Object
Returns the value of attribute gem_root.
29
30
31
|
# File 'lib/kafo/kafo_configure.rb', line 29
def gem_root
@gem_root
end
|
.hooking ⇒ Object
37
38
39
|
# File 'lib/kafo/kafo_configure.rb', line 37
def hooking
@hooking ||= Hooking.new
end
|
.kafo_modules_dir ⇒ Object
Returns the value of attribute kafo_modules_dir.
29
30
31
|
# File 'lib/kafo/kafo_configure.rb', line 29
def kafo_modules_dir
@kafo_modules_dir
end
|
.logger ⇒ Object
Returns the value of attribute logger.
29
30
31
|
# File 'lib/kafo/kafo_configure.rb', line 29
def logger
@logger
end
|
.modules_dir ⇒ Object
Returns the value of attribute modules_dir.
29
30
31
|
# File 'lib/kafo/kafo_configure.rb', line 29
def modules_dir
@modules_dir
end
|
.root_dir ⇒ Object
Returns the value of attribute root_dir.
29
30
31
|
# File 'lib/kafo/kafo_configure.rb', line 29
def root_dir
@root_dir
end
|
.temp_config_file ⇒ Object
Returns the value of attribute temp_config_file.
29
30
31
|
# File 'lib/kafo/kafo_configure.rb', line 29
def temp_config_file
@temp_config_file
end
|
.verbose ⇒ Object
Returns the value of attribute verbose.
29
30
31
|
# File 'lib/kafo/kafo_configure.rb', line 29
def verbose
@verbose
end
|
Class Method Details
.app_option(*args, &block) ⇒ Object
182
183
184
185
186
|
# File 'lib/kafo/kafo_configure.rb', line 182
def self.app_option(*args, &block)
self.app_options ||= []
self.app_options.push self.option(*args, &block)
self.app_options.last
end
|
.cleanup ⇒ Object
151
152
153
154
155
156
157
|
# File 'lib/kafo/kafo_configure.rb', line 151
def self.cleanup
(self.cleanup_paths + ['/tmp/default_values.yaml']).each do |file|
logger.debug "Cleaning #{file}"
FileUtils.rm_rf(file)
end
end
|
.cleanup_paths ⇒ Object
33
34
35
|
# File 'lib/kafo/kafo_configure.rb', line 33
def cleanup_paths
@cleanup_paths ||= []
end
|
.exit(code) ⇒ Object
126
127
128
129
130
|
# File 'lib/kafo/kafo_configure.rb', line 126
def self.exit(code)
cleanup
@exit_code = translate_exit_code(code)
throw :exit
end
|
.exit_code ⇒ Object
132
133
134
|
# File 'lib/kafo/kafo_configure.rb', line 132
def self.exit_code
@exit_code ||= 0
end
|
.help(*args) ⇒ Object
175
176
177
178
179
180
|
# File 'lib/kafo/kafo_configure.rb', line 175
def self.help(*args)
kafo = args.pop
builder_class = kafo.full_help? ? HelpBuilders::Advanced : HelpBuilders::Basic
args.push builder_class.new(kafo.params)
super(*args)
end
|
.register_cleanup_path(path) ⇒ Object
159
160
161
|
# File 'lib/kafo/kafo_configure.rb', line 159
def self.register_cleanup_path(path)
self.cleanup_paths<< path
end
|
.run ⇒ Object
115
116
117
118
119
120
|
# File 'lib/kafo/kafo_configure.rb', line 115
def self.run
catch :exit do
return super
end
Kernel.exit(self.exit_code) end
|
.translate_exit_code(code) ⇒ Object
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
# File 'lib/kafo/kafo_configure.rb', line 136
def self.translate_exit_code(code)
return code if code.is_a? Fixnum
error_codes = { :invalid_system => 20,
:invalid_values => 21,
:manifest_error => 22,
:no_answer_file => 23,
:unknown_module => 24,
:defaults_error => 25 }
if error_codes.has_key? code
return error_codes[code]
else
raise "Unknown code #{code}"
end
end
|
Instance Method Details
#cleanup_paths ⇒ Object
167
168
169
|
# File 'lib/kafo/kafo_configure.rb', line 167
def cleanup_paths
self.class.cleanup_paths
end
|
#config ⇒ Object
71
72
73
|
# File 'lib/kafo/kafo_configure.rb', line 71
def config
self.class.config
end
|
#execute ⇒ Object
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
# File 'lib/kafo/kafo_configure.rb', line 79
def execute
catch :exit do
parse_cli_arguments
if (self.class.verbose = verbose?)
Logger.setup_verbose
else
@progress_bar = self.class.config.app[:colors] ? ProgressBars::Colored.new : ProgressBars::BlackWhite.new
end
unless SystemChecker.check
puts "Your system does not meet configuration criteria"
exit(:invalid_system)
end
if interactive?
wizard = Wizard.new(self)
wizard.run
else
unless validate_all
puts "Error during configuration, exiting"
exit(:invalid_values)
end
end
if dont_save_answers?
self.class.temp_config_file = temp_config_file
store_params(temp_config_file)
else
store_params
end
run_installation
end
return self
end
|
#exit_code ⇒ Object
122
123
124
|
# File 'lib/kafo/kafo_configure.rb', line 122
def exit_code
self.class.exit_code
end
|
#help ⇒ Object
171
172
173
|
# File 'lib/kafo/kafo_configure.rb', line 171
def help
self.class.help(invocation_path, self)
end
|
#logger ⇒ Object
75
76
77
|
# File 'lib/kafo/kafo_configure.rb', line 75
def logger
self.class.logger
end
|
#module(name) ⇒ Object
199
200
201
|
# File 'lib/kafo/kafo_configure.rb', line 199
def module(name)
modules.detect { |m| m.name == name }
end
|
#modules ⇒ Object
195
196
197
|
# File 'lib/kafo/kafo_configure.rb', line 195
def modules
config.modules.sort
end
|
#param(mod, name) ⇒ Object
203
204
205
|
# File 'lib/kafo/kafo_configure.rb', line 203
def param(mod, name)
params.detect { |p| p.name == name && p.module.name == mod }
end
|
#params ⇒ Object
188
189
190
191
192
193
|
# File 'lib/kafo/kafo_configure.rb', line 188
def params
@params ||= modules.map(&:params).flatten
rescue KafoParsers::ModuleName => e
puts e
exit(:unknown_module)
end
|
#register_cleanup_path(path) ⇒ Object
163
164
165
|
# File 'lib/kafo/kafo_configure.rb', line 163
def register_cleanup_path(path)
self.class.register_cleanup_path(path)
end
|