comfy-recipes/cli.py

44 lines
1.2 KiB
Python

import argparse
import http.server
import socketserver
import sys
import os
import recipes
def main() -> None:
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(required=True, dest="subcommand")
parser_build = subparsers.add_parser("build")
parser_build.add_argument("directory", type=str)
parser_serve = subparsers.add_parser("serve")
parser_serve.add_argument("directory", type=str)
parser_serve.add_argument("--port", type=int, default=8000)
parser_serve.add_argument("--address", type=str, default="127.0.0.1")
args = parser.parse_args()
ret = 0
if args.subcommand == "build":
ret = recipes.Builder().build(args.directory)
elif args.subcommand == "serve":
os.chdir(f"{args.directory}/out/html")
httpd = socketserver.TCPServer(
(args.address, args.port), http.server.SimpleHTTPRequestHandler
)
print(f"serving at http://{args.address}:{args.port}")
try:
httpd.serve_forever()
except KeyboardInterrupt:
pass
else:
# unhandled, but valid subcommand
assert False
sys.exit(ret)
if __name__ == "__main__":
main()