Sha256: 605ac67ab342a7037d35b76f5bfab250590c270f9d1096c0ecbd650c26667119
Contents?: true
Size: 1.88 KB
Versions: 3
Compression:
Stored size: 1.88 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") 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
perfmonger-0.8.2 | lib/perfmonger/command/summary.rb |
perfmonger-0.8.1 | lib/perfmonger/command/summary.rb |
perfmonger-0.8.0 | lib/perfmonger/command/summary.rb |