#!/usr/bin/python from pathlib import Path from json import loads from shutil import rmtree from shutil import copytree from cx_maketool import sass_compiler from cx_maketool import esbuild_compiler from cx_maketool import render from cx_maketool import script from cx_maketool import link root = Path(__file__).absolute().parent source = root / Path("source/") build = root / Path("./") styles = source / Path("stylesheet/") scripts = source / Path("scripts/") assets = source / Path("assets/") assets_output = build / Path("assets/") scripts_loader = scripts / Path("core.js") theme_loader = styles / Path("core.sass") info_file = source / Path("about.txt") script_bundle = build / Path("script.js") theme_bundle = build / Path("style.css") if theme_bundle.is_file(): theme_bundle.unlink() if script_bundle.is_file(): script_bundle.unlink() sass_compiler(theme_loader).build(theme_bundle) esbuild_compiler(scripts_loader).build(script_bundle) if assets_output.exists(): rmtree(assets_output) copytree(assets, assets_output) with info_file.open() as info: info_content = info.read() with theme_bundle.open() as theme: content = theme.read() with theme_bundle.open("w") as theme: theme.write(info_content + content)