Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
Este repositório está arquivado. Pode ver ficheiros e cloná-lo, mas não pode fazer envios ou lançar questões ou pedidos de integração.
 
 
 
 
 
 

58 linhas
1.4 KiB

  1. import argparse
  2. import os
  3. import sys
  4. import shutil
  5. import subprocess
  6. def run(*cmd):
  7. print("$", *cmd)
  8. process = subprocess.run(" ".join(cmd), shell=True)
  9. if process.returncode != 0:
  10. sys.exit(1)
  11. def main():
  12. parser = argparse.ArgumentParser()
  13. parser.add_argument("--dev", action="store_true", help="Run with a live server")
  14. parser.add_argument(
  15. "--werror", action="store_true", help="Treat warnings as errors"
  16. )
  17. parser.add_argument("--clean", action="store_true", help="Clean first")
  18. parser.add_argument("--format", help="Output format", default="html")
  19. args = parser.parse_args()
  20. dev = args.dev
  21. werror = args.werror
  22. clean = "--clean" in sys.argv
  23. format = args.format
  24. if dev:
  25. program = "sphinx-autobuild"
  26. else:
  27. program = "sphinx-build"
  28. opts = []
  29. if clean:
  30. if os.path.exists("build"):
  31. shutil.rmtree("build")
  32. if werror:
  33. opts.append("-W")
  34. if format == "html":
  35. builder = "html"
  36. elif format == "pdf":
  37. builder = "latex"
  38. build_path = f"build/{builder}"
  39. run(program, *opts, "-d", "build", "-b", builder, "source", build_path)
  40. if format == "pdf":
  41. run("make", "-C", build_path)
  42. # fmt: off
  43. run(
  44. "mv", "-v", "-f",
  45. f"{build_path}/*.pdf",
  46. "../cours.pdf",
  47. )
  48. # fmt: on
  49. if __name__ == "__main__":
  50. main()