#!/usr/bin/env python

import sys, os
from optparse import OptionParser
from hiprofile import Report, Connection, write_report

default_thresholds = {
    'binary':   '5%',
    'symbol':   '20',
}

default_outdir = 'output'

def main(args):
    parser = OptionParser()
    parser.add_option('-r', '--remote-host', dest = 'host',
            help = 'grab oprofile data from HOST', metavar = 'HOST')
    parser.add_option('-o', '--output-dir', dest = 'outdir',
            help = 'create output in directory DIR', metavar = 'DIR',
            default = default_outdir)
    parser.add_option('--opreport', dest = 'opreport', default = 'opreport',
            help = 'use opreport binary at PATH', metavar = 'PATH')
    parser.add_option('--opannotate', dest = 'opannotate',
            default = 'opannotate',
            help = 'use opannotate binary at PATH', metavar = 'PATH')

    (options, args) = parser.parse_args()

    conn = Connection(options.host)

    report = Report.extract(conn, options)

    report.threshold(default_thresholds)

    report.annotate(conn, options)

    write_report(report, options.outdir)

if __name__ == '__main__':
    sys.exit(main(sys.argv))
