# File lib/kafo/kafo_configure.rb, line 144 def self.app_option(*args, &block) self.app_options ||= [] self.app_options.push self.option(*args, &block) self.app_options.last end
# File lib/kafo/kafo_configure.rb, line 120 def self.exit(code, &block) exit_handler.exit(code, &block) end
# File lib/kafo/kafo_configure.rb, line 124 def self.exit_code self.exit_handler.exit_code end
# File lib/kafo/kafo_configure.rb, line 137 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
# File lib/kafo/kafo_configure.rb, line 34 def hooking @hooking ||= Hooking.new end
# File lib/kafo/kafo_configure.rb, line 39 def initialize(*args) self.class.logger = Logger.new self.class.exit_handler = ExitHandler.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 # we need to parse app config params using clamp even before run method does it # so we limit parsing only to app config options (because of --help and later defined params) parse clamp_app_arguments parse_app_arguments Logger.setup ColorScheme.new(config).setup self.class.hooking.execute(:init) set_parameters # here the params gets parsed and we need app config populated set_options end
# File lib/kafo/kafo_configure.rb, line 114 def self.run return super rescue SystemExit => e self.exit_handler.exit(self.exit_code) # fail in initialize end
# File lib/kafo/kafo_configure.rb, line 162 def add_module(name) config.add_module(name) reset_params_cache self.module(name) end
# File lib/kafo/kafo_configure.rb, line 69 def config self.class.config end
# File lib/kafo/kafo_configure.rb, line 77 def execute 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" self.class.exit(:invalid_system) end self.class.hooking.execute(:pre_validations) if interactive? wizard = Wizard.new(self) wizard.run else unless validate_all puts "Error during configuration, exiting" self.class.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 return self rescue SystemExit return self end
# File lib/kafo/kafo_configure.rb, line 128 def exit_code self.class.exit_code end
# File lib/kafo/kafo_configure.rb, line 133 def help self.class.help(invocation_path, self) end
# File lib/kafo/kafo_configure.rb, line 73 def logger self.class.logger end
# File lib/kafo/kafo_configure.rb, line 172 def module(name) modules.detect { |m| m.name == name } end
# File lib/kafo/kafo_configure.rb, line 168 def modules config.modules.sort end
# File lib/kafo/kafo_configure.rb, line 176 def param(mod, name) params.detect { |p| p.name == name && p.module.name == mod } end
# File lib/kafo/kafo_configure.rb, line 150 def params @params ||= modules.map(&:params).flatten rescue KafoParsers::ModuleName => e puts e self.class.exit(:unknown_module) end
# File lib/kafo/kafo_configure.rb, line 157 def reset_params_cache @params = nil params end