Adding argparse to arguments --style and --output.
[treecutter.git] / src / tree-cutter.py
index c15e2c3ca7c960ae2337d94ea7e9cb89ac3047bb..f1790b8652424094b8c388136070493866cdf4ae 100755 (executable)
@@ -7,15 +7,21 @@ import re
 import tempfile
 import errno
 import time
+import argparse
 from amara import bindery
 from amara.xslt import transform
 from Cheetah.Template import Template
 
-dist = os.path.dirname(os.getcwd())
-style = "default"
-style_xslt = dist+"/style/"+style+"/docbook.xsl"
-style_tmpl = dist+"/style/"+style+"/index.html.tmpl"
-outputdir = dist+"/htdocs/"
+parser = argparse.ArgumentParser(description='Process docbook article tree.')
+parser.add_argument('--style', nargs='?',
+                    default=os.path.dirname(os.getcwd())+'/style/default/')
+parser.add_argument('--output', nargs='?',
+                    default=os.path.dirname(os.getcwd())+'/htdocs/')
+args = parser.parse_args()
+
+style_xslt = args.style+"docbook.xsl"
+style_tmpl = args.style+"index.en.html.tmpl"
+outputdir = args.output
 
 valid_scripts = ['.py','.pl']
 MAXLEVEL = 10000
@@ -71,7 +77,7 @@ def generateSitemap():
               l.update(page)
           if not found:
             print "adding "+link+" to sitemap"
-            dd = dict(link=link) 
+            dd = dict(link=link)
             dd.update(page)
             sitemap.append(dd)
   sfile = open('sitemap.txt','w')
@@ -125,18 +131,17 @@ def genMenu(page,sitemap,slevel,elevel):
   title = None
   sm = []
   if elevel == MAXLEVEL or elevel == 1:
-    sm = sitemap        
+    sm = sitemap
   else:
     idx = sitemap.index(page)
     while (sitemap[idx]['level'] == page['level']):
       idx = idx-1
     title = sitemap[idx]['menu']
     idx = idx+1
-    while (sitemap[idx]['level'] == page['level']):
+    while (idx < len(sitemap) and sitemap[idx]['level'] == page['level']):
       sm.append(sitemap[idx])
       idx = idx+1
   oldlevel = slevel
-
   html = '<ul>\n'
   for p in sm:
     if slevel > p['level'] or elevel < p['level']:
@@ -185,5 +190,3 @@ for page in sitemap:
 #  publishResources()
   t2 = time.time()
   print "["+str(round(t2-t1,2))+"]  done."
-
-