Sha256: afe2ed602dd914a4e789ddb22fa7d540b6919d507d16bd8120ecc8da317b79a1
Contents?: true
Size: 2 KB
Versions: 1
Compression:
Stored size: 2 KB
Contents
#!/usr/bin/env ruby # frozen_string_literal: true require 'optparse' # for dev purposes require 'bundler/setup' if ENV['SITE_HEALTH_GEM_DEV'] require 'site_health' def site_report(url, fields, progress) puts 'severity,title,url' if progress nurse = SiteHealth.check(url) do |n| n.clerk do |clerk| clerk.every_issue do |issue| puts [issue.severity, issue.title, issue.url].join(',') if progress end end end SiteHealth::IssuesReport.new(nurse.issues) do |r| r.fields = fields if fields end end options = {} OptionParser.new do |parser| parser.banner = 'Usage: site_health --help' parser.default_argv = ARGV parser.on('--url=val0', String, '') do |url| options[:url] = url end parser.on('--fields=priority,title,url', Array, 'Issue fields to include - by default all fields are included') do |fields| # rubocop:disable Metrics/LineLength options[:fields] = fields end parser.on('--output=result.csv', String, 'Output format, .csv or .json') do |output| options[:output] = output end parser.on('--[no-]progress', '') do |progress| options[:progress] = progress end parser.on('-h', '--help', 'How to use') do puts parser exit end end.parse! def die(error_klass, message) fail(error_klass, "#{message} - run `site_health --help`") end def perform(output, url, fields, progress, format_method) File.write( output, site_report(url, fields, progress).public_send(format_method) ) end url = options.fetch(:url) { die(ArgumentError, '--url is required') } output = options.fetch(:output) { die(ArgumentError, '--output is required') } progress = options.fetch(:progress, true) fields = options.fetch(:fields, nil) extension = File.extname(output) case extension when '.csv' then perform(output, url, fields, progress, :to_csv) when '.json' then perform(output, url, fields, progress, :to_json) when '' die(ArgumentError, "missing file extension from '#{output}'") else die(ArgumentError, "unknown file extension '#{extension}'") end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
site_health-0.2.0 | exe/site_health |