Sha256: b044957aa9a333c8c459f56f0146c9c316416ec4c8174c226b83a31f02fbdbb0

Contents?: true

Size: 1.07 KB

Versions: 1

Compression:

Stored size: 1.07 KB

Contents

#!/usr/bin/env ruby

require "how_is"
require "how_is/cli"

begin
  parser  = HowIs::CLI::Parser.new
  result  = parser.call(ARGV)
rescue HowIs::CLI::OptionsError => e
  if ENV['SHOW_TRACE']
    raise
  else
    abort "Error: #{e.message}"
  end
end

opts      = result[:opts]
options   = result[:options]
arguments = result[:arguments]

if options[:help]
  puts result[:opts]
  exit
elsif options[:version]
  puts HowIs::VERSION
  exit
end

def save_files(reports)
  reports.each do |file, report|
    format = file.split('.').last

    File.open(file, 'w') do |f|
      f.write report.send("to_#{format}")
    end
  end
end

begin
  if options[:config]
    reports = HowIs.from_config(YAML.load_file(options[:config]))

    save_files(reports)
  else
    report =
      if options[:from]
        json_report = File.open(options[:from]).read
        HowIs.from_json(json_report)
      else
        HowIs.new(options[:repository])
      end

    save_files({ options[:report] => report })
  end

rescue => e
  if ENV['SHOW_TRACE']
    raise
  else
    abort "Error: #{e.message}"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
how_is-18.0.1 exe/how_is