From 404a583142a082f0a8d429b27e975534611c9e3a Mon Sep 17 00:00:00 2001 From: Agnibho Mondal Date: Wed, 7 Feb 2018 02:47:24 +0530 Subject: [PATCH] Added command line options --- statin | 98 +++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 77 insertions(+), 21 deletions(-) diff --git a/statin b/statin index 9a5245b..f067cd7 100755 --- a/statin +++ b/statin @@ -24,6 +24,7 @@ from glob import glob from os import path, popen from shutil import rmtree, copytree, ignore_patterns from datetime import datetime +import argparse import re from conf import * @@ -39,44 +40,76 @@ ifskip = False # Start script def main(): + global args + + #Parse arguments + parser = argparse.ArgumentParser(description="Generate static html files") + verbo = parser.add_mutually_exclusive_group() + verbo.add_argument("-q", "--quiet", help="Suppress text output to console", action="store_true") + verbo.add_argument("-v", "--verbose", help="Verbose text output to console", action="store_true") + parser.add_argument("-s", "--safe", help="Disable python eval of strings", action="store_true") + parser.add_argument("files", help="List of files to be processed", nargs="*") + args = parser.parse_args() + # List all files to be processed filelist = [] - for patt in PROCESS_PATT: - filelist.extend(glob(patt)) + if(args.files): + filelist = args.files + else: + for patt in PROCESS_PATT: + filelist.extend(glob(patt)) + + # Purge output directory and rebuild if specific filenames not supplied + if(not args.files): + rmtree(OUTPUT_DIR, True) + copytree(".", OUTPUT_DIR, ignore=ignore_patterns(*PROCESS_PATT)) + if(not args.quiet): + print("Contents copied to " + OUTPUT_DIR + "\n") - # Purge output directory and rebuild - rmtree(OUTPUT_DIR, True) - copytree(".", OUTPUT_DIR, ignore=ignore_patterns(*PROCESS_PATT)) - print("Contents copied to " + OUTPUT_DIR + "\n") + # Send file list for processing process_file(filelist) # Process each file in list def process_file(filelist): + global args global openif, ifstatus, ifskip #Loop over the filelist for filename in filelist: - varlist["DOCUMENT_URI"] = filename - varlist["DOCUMENT_NAME"] = path.basename(filename) - varlist["LAST_MODIFIED"] = datetime.fromtimestamp(path.getmtime(filename)).strftime(conflist["timefmt"]) - print("Processing " + filename) - outfile = OUTPUT_DIR + path.splitext(path.basename(filename))[0] + ".html" - with open(filename) as src, open(outfile, "w") as out: - for line in src: - line = re.split("()", line) - for item in line: - if(item.strip()): - if(item.strip()[:5] == ")", line) + for item in line: + if(item.strip()): + if(item.strip()[:5] == "