'update'
[talweg.git] / reports / ipynb_generator.py
index fedfa40..456fc22 100755 (executable)
@@ -17,7 +17,7 @@ shortname2language = dict(
     tex='Tex',
     )
 
-def read(text, argv=sys.argv[2:]):
+def read(text, argv=sys.argv[3:]):
     lines = text.splitlines()
     # First read all include statements
     for i in range(len(lines)):
@@ -63,9 +63,7 @@ def read(text, argv=sys.argv[2:]):
                 if shortname:
                     # Check if code is to be typeset as static
                     # Markdown code (e.g., shortname=py-t)
-                        .format(shortname))
                     astext = shortname[-2:] == '-t'
-                        .format(astext, shortname))
                     if astext:
                         # Markdown
                         shortname = shortname[:-2]
@@ -122,18 +120,19 @@ def write(cells):
 def driver():
     """Compile a document and its variables."""
     try:
-        filename = sys.argv[1]
-        with open(filename, 'r') as f:
+        inputfile = sys.argv[1]
+        with open(inputfile, 'r') as f:
             text = f.read()
+        # Assuming file extension .gj (generate Jupyter); TODO: less strict
+        outputfile = inputfile[:-3]+'.ipynb' if (len(sys.argv)<=2 or sys.argv[2]=='-') \
+            else sys.argv[2]
     except (IndexError, IOError) as e:
-        print('Usage: %s filename' % (sys.argv[0]))
+        print('Usage: %s inputfile [outputfile|- [Mako args]]' % (sys.argv[0]))
         print(e)
         sys.exit(1)
-    cells = read(text, argv=sys.argv[2:])
+    cells = read(text, argv=sys.argv[3:])
     filestr = write(cells)
-    # Assuming file extension .gj (generate Jupyter); TODO: less strict
-    filename = filename[:-3] + '.ipynb'
-    with open(filename, 'w') as f:
+    with open(outputfile, 'w') as f:
         f.write(filestr)
 
 if __name__ == '__main__':