diff --git a/cli.py b/cli.py index 79383f2..edf259a 100644 --- a/cli.py +++ b/cli.py @@ -5,6 +5,20 @@ import subprocess import sys import os +def updateIssue(issuePath: str, verbose = False): + if verbose: + print("get issues") + p = subprocess.run(["deno", "run", "-A","tools/getIssue.ts", "--path",issuePath]) + p.check_returncode() + +def printDocument(issuePath:str, outDir:str, watch = False, verbose = False): + if verbose: + print("build document") + cmd = ["deno", "run", "-A","tools/printDocument.ts", "--issue_path", issuePath, "--outDir", outDir] + if watch: + cmd.append("--watch") + p = subprocess.run(cmd) + p.check_returncode() def build(args): parser = argparse.ArgumentParser(description='Compiling the documentation', prog="cli.py build") @@ -19,17 +33,26 @@ def build(args): issuePath = os.path.join(args.outDir,"issues.json") if args.update_issues: - if args.verbose: - print("get issues") - p = subprocess.run(["deno", "run", "-A","tools/getIssue.ts", "--path",issuePath]) - p.check_returncode() + updateIssue(issuePath, args.verbose) + printDocument(issuePath, args.outDir, args.watch, args.verbose) + +def serve(args): + """serve the documentation and reload on changes""" + parser = argparse.ArgumentParser(description='Serve the documentation and reload changes', prog="cli.py serve") + parser.add_argument('-v', '--verbose', action='store_true', help='verbose mode') + parser.add_argument('-p', '--port', default=8000, help='port') + parser.add_argument('--update_issues', action='store_true', help='update issues') + outDir = "build" + issuePath = os.path.join(outDir,"issues.json") + args = parser.parse_args(args) if args.verbose: - print("build issues") - cmd = ["deno", "run", "-A","tools/printDocument.ts", "--issue_path", issuePath, "--outDir", args.outDir] - if args.watch: - cmd.append("--watch") - p = subprocess.run(cmd) - p.check_returncode() + print("serve start") + cmd = ["mdbook", "serve", "--port", str(args.port)] + p = subprocess.Popen(cmd) + printDocument(issuePath, outDir, True, args.verbose) + p.wait() + if p.returncode != 0: + sys.exit(p.returncode) def help(_args): global commandList @@ -42,16 +65,14 @@ def issueUpdate(args): parser.add_argument('-v', '--verbose', action='store_true', help='verbose mode') parser.add_argument('--outDir', default="build", help='output directory') args = parser.parse_args(args) - if args.verbose: - print("update issues") issuePath = os.path.join(args.outDir,"issues.json") - p = subprocess.run(["deno", "run", "-A","tools/getIssue.ts", "--path",issuePath]) - p.check_returncode() + updateIssue(issuePath, args.verbose) commandList = { 'build': build, 'help': help, - 'issueUpdate': issueUpdate + 'issueUpdate': issueUpdate, + 'serve': serve } def main():