Sha256: 39bd0cd4ed09052ae39c1159ca8e1a331f5e6864da9c90338a4298e994c965af
Contents?: true
Size: 1.9 KB
Versions: 13
Compression:
Stored size: 1.9 KB
Contents
require 'optparse' require 'json' module PerfMonger module Command class SummaryCommand < BaseCommand register_command 'summary', "Show a summary of a perfmonger log file" def initialize @parser = OptionParser.new @parser.banner = <<EOS Usage: perfmonger summary [options] LOG_FILE Options: EOS @json = false @pager = nil @disk_only_regex = nil @parser.on('--json', "Output summary in JSON") do @json = true end @parser.on('-p', '--pager [PAGER]', "Use pager to see summary output.") do |pager| if pager.nil? if ENV['PAGER'].nil? puts("ERROR: No pager is available.") puts("ERROR: Please set PAGER or give pager name to --pager option.") puts(@parser.help) exit(false) else @pager = ENV['PAGER'] end else @pager = pager end end @parser.on('--disk-only REGEX', "Select disk devices that matches REGEX (Ex. 'sd[b-d]')") do |regex| @disk_only_regex = regex end end def parse_args(argv) @parser.parse!(argv) if argv.size == 0 puts("ERROR: PerfMonger log file is required") puts(@parser.help) exit(false) end @logfile = argv.shift if ! File.exists?(@logfile) puts("ERROR: No such file: #{@logfile}") puts(@parser.help) exit(false) end end def run(argv, summary_title = nil) parse_args(argv) summary_title ||= @logfile @summarizer_bin = ::PerfMonger::Command::CoreFinder.summarizer() if ! @summarizer_bin puts("[ERROR] no executable binary found.") exit(false) end cmd = [@summarizer_bin] if @json cmd << "-json" end if @disk_only_regex cmd << "-disk-only" cmd << @disk_only_regex end cmd << "-title" cmd << summary_title cmd << @logfile Process.exec(*cmd) end end end # module Command end # module PerfMonger
Version data entries
13 entries across 13 versions & 1 rubygems