etc/generate.py
changeset 25 9fa9d881fd87
parent 24 29a523db66a8
parent 20 86bbabd10ff6
child 26 d275edd72861
equal deleted inserted replaced
24:29a523db66a8 25:9fa9d881fd87
     1 from rrdweb import graph, html
       
     2 
       
     3 # list of targets
       
     4 from targets import targets
       
     5 
       
     6 import os.path, fnmatch
       
     7 
       
     8 rrd_dir = "rrd"
       
     9 img_dir = "img"
       
    10 web_dir = "web"
       
    11 
       
    12 def target_graph (target, style, interval) : 
       
    13     # compose paths
       
    14     rrd_path = os.path.join(rrd_dir, target.rrd_name())
       
    15     out_path = os.path.join(img_dir, style, interval, target.img_name())
       
    16 
       
    17     # graph
       
    18     graph.mrtg(style, interval, target.title, rrd_path, out_path)
       
    19 
       
    20 
       
    21 def main (targets, filters, style='detail', interval='daily'):
       
    22     if filters :
       
    23         # filter targets
       
    24         targets = [target for target in targets if any(fnmatch.fnmatch(target.name, filter) for filter in filters)]
       
    25 
       
    26     # overview
       
    27     html_fmt = html.Formatter(
       
    28         url_prefix      = "/~terom/rrdweb",
       
    29         img_url         = "%(prefix)s/img/%(style)s/%(interval)s/%(target)s.png",
       
    30         target_url      = "%(prefix)s/web/%(target)s.html",
       
    31     )
       
    32 
       
    33     # overview page
       
    34     overview_path = os.path.join(web_dir, "index.html")
       
    35     open(overview_path, 'w').write(html_fmt.overview(targets))
       
    36 
       
    37     for target in targets :
       
    38         print target.name
       
    39 
       
    40         target_graph(target, 'overview', 'daily')
       
    41 
       
    42         for interval in ('daily', 'weekly', 'yearly') :
       
    43             target_graph(target, 'detail', interval)
       
    44     
       
    45         # html
       
    46         html_path = os.path.join(web_dir, target.name + '.html')
       
    47         open(html_path, 'w').write(html_fmt.target(target))
       
    48 
       
    49 if __name__ == '__main__' :
       
    50     import sys
       
    51 
       
    52     main(targets, sys.argv[1:])
       
    53