Sha256: 2b5471a07a24fdcb5865bf0d9dd281a7bb16ebd0171f8ed6e78a25624f23d1d6
Contents?: true
Size: 1.41 KB
Versions: 5
Compression:
Stored size: 1.41 KB
Contents
module Kafo class ExitHandler attr_accessor :cleanup_paths, :exit_code, :logger def initialize @cleanup_paths = [] @exit_code = 0 @logger = KafoConfigure.logger end def error_codes @error_codes ||= { :invalid_system => 20, :invalid_values => 21, :manifest_error => 22, :no_answer_file => 23, :unknown_module => 24, :defaults_error => 25, :unset_scenario => 26, :scenario_error => 27, :missing_argument => 28, :insufficient_permissions => 29 } end def exit(code, &block) @exit_code = translate_exit_code(code) block.call if block KafoConfigure.logger.debug "Exit with status code: #{@exit_code} (signal was #{code})" KafoConfigure.logger.dump_errors unless KafoConfigure.verbose cleanup Kernel.exit(@exit_code) end def translate_exit_code(code) return code if code.is_a?(Fixnum) if error_codes.has_key?(code) return error_codes[code] else raise "Unknown code #{code}" end end def cleanup # make sure default values are removed from /tmp (self.cleanup_paths + ['/tmp/default_values.yaml']).each do |file| logger.debug "Cleaning #{file}" FileUtils.rm_rf(file) end end def register_cleanup_path(path) self.cleanup_paths<< path end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
kafo-2.0.2 | lib/kafo/exit_handler.rb |
kafo-2.0.1 | lib/kafo/exit_handler.rb |
kafo-2.0.0 | lib/kafo/exit_handler.rb |
kafo-1.0.8 | lib/kafo/exit_handler.rb |
kafo-1.0.7 | lib/kafo/exit_handler.rb |