Sha256: eea1892472a5beac97684a9c61683e114c347a8b4c0f2da5fe30bbfd0c3ad720
Contents?: true
Size: 1.55 KB
Versions: 3
Compression:
Stored size: 1.55 KB
Contents
require_relative "cmdline" require_relative "core" require_relative "utils" module Giblish # The 'main' class of giblish class Application # does not return, exits with status code def run_from_cmd_line status = run(ARGV) exit(status) end # return exit status (0 for success) def run(args) # force immediate output $stdout.sync = true # setup logging Giblog.setup # Parse cmd line cmdline = CmdLineParser.new args Giblog.logger.debug { "cmd line args: #{cmdline.args}" } exit_code = execute_conversion(cmdline) Giblog.logger.info { "Giblish is done!" } if exit_code.zero? exit_code end private # Convert using given args # return exit code (0 for success) def execute_conversion(cmdline) conv_error = false begin conv_error = converter_factory(cmdline).convert rescue StandardError => e log_error e conv_error = true end conv_error ? 1 : 0 end # return the converter corresponding to the given cmd line # options def converter_factory(cmdline) if cmdline.args[:gitRepoRoot] Giblog.logger.info { "User asked to parse a git repo" } GitRepoConverter.new(cmdline.args) else FileTreeConverter.new(cmdline.args) end end def log_error(exc) Giblog.logger.error do <<~ERR_MSG Error: #{exc.message} Backtrace: \t#{exc.backtrace.join("\n\t")} cmdline.usage ERR_MSG end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
giblish-0.8.2 | lib/giblish/application.rb |
giblish-0.8.1 | lib/giblish/application.rb |
giblish-0.8.0 | lib/giblish/application.rb |