bin/pvl.verkko-rrd
changeset 152 33b98b46d8fb
child 153 8930f54b59b4
equal deleted inserted replaced
151:8a9f01036091 152:33b98b46d8fb
       
     1 #!/usr/bin/python
       
     2 
       
     3 """
       
     4     pvl.verkko.rrd wsgi development server
       
     5 """
       
     6 
       
     7 import werkzeug.serving 
       
     8 
       
     9 from pvl import __version__
       
    10 import pvl.args
       
    11 import pvl.verkko.rrd
       
    12 
       
    13 import optparse
       
    14 import logging; log = logging.getLogger('main')
       
    15 
       
    16 def parse_argv (argv, doc = __doc__) :
       
    17     """
       
    18         Parse command-line argv, returning (options, args).
       
    19     """
       
    20 
       
    21     prog = argv.pop(0)
       
    22     args = argv
       
    23 
       
    24     # optparse
       
    25     parser = optparse.OptionParser(
       
    26         prog        = prog,
       
    27         usage       = '%prog: [options] [<user> [...]]',
       
    28         version     = __version__,
       
    29         description = doc,
       
    30     )
       
    31 
       
    32     # common
       
    33     parser.add_option_group(pvl.args.parser(parser))
       
    34 
       
    35     parser.add_option('--rrd', metavar='PATH',
       
    36         help="Path to RRD files")
       
    37 
       
    38     # parse
       
    39     options, args = parser.parse_args(args)
       
    40 
       
    41     # apply
       
    42     pvl.args.apply(options)
       
    43 
       
    44     return options, args
       
    45 
       
    46 def main (argv) :
       
    47     """
       
    48         pvl.verkko wsgi development server.
       
    49     """
       
    50 
       
    51     # parse cmdline
       
    52     options, args = parse_argv(argv, doc=__doc__)
       
    53 
       
    54     # rrd
       
    55     rrd = pvl.verkko.rrd.RRDDatabase(options.rrd)
       
    56 
       
    57     # app
       
    58     application = pvl.verkko.rrd.Application(rrd)
       
    59 
       
    60     # wsgi wrapper
       
    61     werkzeug.serving.run_simple('0.0.0.0', 8080, application,
       
    62             #use_reloader    = True, 
       
    63             use_debugger    = (options.loglevel == logging.DEBUG),
       
    64             static_files    = {
       
    65                 '/static':      'static',
       
    66             },
       
    67     )
       
    68 
       
    69 if __name__ == '__main__' :
       
    70     import sys
       
    71 
       
    72     sys.exit(main(sys.argv))
       
    73 
       
    74