| 
				
				
				
				 | 
			
			 | 
			@@ -1,13 +1,31 @@ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import argparse | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import os | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import sys | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import shutil | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			import subprocess | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			def run(*cmd): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    print("$", *cmd) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    process = subprocess.run(cmd) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if process.returncode != 0: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        sys.exit(1) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			def main(): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    dev = "--dev" in sys.argv | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    werror = "--werror" in sys.argv | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    parser = argparse.ArgumentParser() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    parser.add_argument("--dev", action="store_true", help="Run with a live server") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    parser.add_argument( | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        "--werror", action="store_true", help="Treat warnings as errors" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    ) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    parser.add_argument("--clean", action="store_true", help="Clean first") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    parser.add_argument("--format", help="Output format", default="html") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    args = parser.parse_args() | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    dev = args.dev | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    werror = args.werror | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    clean = "--clean" in sys.argv | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    format = args.format | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if dev: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        program = "sphinx-autobuild" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    else: | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -18,11 +36,15 @@ def main(): | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            shutil.rmtree("build") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if werror: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        opts.append("-W") | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    cmd = [program, *opts, "-d", "build", "-b", "html", "source", "build/html"] | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    print("$", *cmd) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    process = subprocess.run(cmd) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if process.returncode != 0: | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        sys.exit(1) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if format == "html": | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        builder = "html" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    elif format == "pdf": | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        builder = "latex" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    build_path = f"build/{builder}" | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    run(program, *opts, "-d", "build", "-b", builder, "source", build_path) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if format == "pdf": | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        run("make", "-C", build_path) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        print("pdf generated in", build_path) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			if __name__ == "__main__": | 
		
		
	
	
		
			
				| 
				
				
				
				 | 
			
			 | 
			
  |