Files
rgthree-rgthree-comfy/__dev__.py
T

37 lines
1.3 KiB
Python

#!/usr/bin/env python3
import subprocess
import os
from shutil import rmtree, copytree, ignore_patterns
from glob import glob
import json
import re
from py.config import RGTHREE_CONFIG
THIS_DIR=os.path.dirname(os.path.abspath(__file__))
DIR_SRC_WEB = os.path.abspath(f'{THIS_DIR}/src_web/')
DIR_WEB = os.path.abspath(f'{THIS_DIR}/web/')
DIR_WEB_COMFYUI = os.path.abspath(f'{DIR_WEB}/comfyui/')
rmtree(DIR_WEB)
copytree(DIR_SRC_WEB, DIR_WEB, ignore=ignore_patterns("typings*", "*.ts"))
subprocess.run(["./node_modules/typescript/bin/tsc"])
# Because ComfyUI loads under /extensions/rgthree-comfy we can't easily share sources outside of the
# DIR_WEB_COMFYUI _and_ allow typescript to resolve them, so we set the path in the tsconfig to map
# an import of "rgthree/common" to the "src_web/common" directory, but then need to rewrite the
# comfyui JS files to load from "../../rgthree/common" (which we map correctly in
# rgthree_server.py).
# We only need to do this for the DIR_WEB_COMFYUI, as the other directories already load with fine
# relative paths.
js_files = glob(os.path.join(DIR_WEB_COMFYUI, '*.js'))
for file in js_files:
with open(file, 'r', encoding = "utf-8") as f:
filedata = f.read()
filedata = re.sub(r'(from\s+["\'])rgthree/', '\\1../../rgthree/', filedata)
with open(file, 'w', encoding = "utf-8") as f:
f.write(filedata)