|
|
@@ -0,0 +1,50 @@
|
|
|
+#!/bin/python
|
|
|
+
|
|
|
+from pathlib import Path
|
|
|
+from json import loads
|
|
|
+from shutil import rmtree
|
|
|
+from shutil import copytree
|
|
|
+
|
|
|
+from maketool import sass_compiler
|
|
|
+from maketool import esbuild_compiler
|
|
|
+from maketool import render
|
|
|
+from maketool import script
|
|
|
+from maketool import link
|
|
|
+
|
|
|
+root = Path(__file__).absolute().parent
|
|
|
+source = root / Path("./")
|
|
|
+build = root / Path("build/")
|
|
|
+
|
|
|
+styles = source / Path("styles/")
|
|
|
+scripts = source / Path("scripts/")
|
|
|
+
|
|
|
+scripts_loader = scripts / Path("core.js")
|
|
|
+theme_loader = styles / Path("core.sass")
|
|
|
+full_bundle = scripts / Path("bundle.js")
|
|
|
+
|
|
|
+script_bundle = build / Path("pack.js")
|
|
|
+theme_bundle = build / Path("pack.css")
|
|
|
+bundle_tmp_output = build / Path("bundle.tmp.js")
|
|
|
+bundle_output = build / Path("bundle.js")
|
|
|
+
|
|
|
+if build.exists():
|
|
|
+ rmtree(build)
|
|
|
+
|
|
|
+build.mkdir()
|
|
|
+
|
|
|
+sass_compiler(theme_loader).build(theme_bundle)
|
|
|
+esbuild_compiler(scripts_loader).build(script_bundle)
|
|
|
+
|
|
|
+with theme_bundle.open() as style:
|
|
|
+ with script_bundle.open() as script:
|
|
|
+ script = script.read().replace("\"", "\\\"").replace("`", "\\`")
|
|
|
+ style = style.read().replace("\"", "\\\"").replace("`", "\\`")
|
|
|
+
|
|
|
+ rendering = render(full_bundle)
|
|
|
+ rendering.add("style", style)
|
|
|
+ rendering.add("script", script)
|
|
|
+
|
|
|
+ with bundle_tmp_output.open("w") as output:
|
|
|
+ output.write(rendering.finalize())
|
|
|
+
|
|
|
+esbuild_compiler(bundle_tmp_output).build(bundle_output)
|