mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-12-22 09:00:10 +00:00
build: remove compile_mjml script, no python!
if I had taken a second to actually read the documentation, i'd have realized the mjml command can process a bunch of files at once. On my machine, cuts time down from ~800ms to ~500ms. While there are still some scripts using python, none are needed to build the software anymore, so no python build deps!
This commit is contained in:
parent
f063b970b4
commit
9e9f46d97b
14
Makefile
14
Makefile
@ -108,7 +108,6 @@ CONFIG_DEFAULT = $(DATA)/config-default.ini
|
|||||||
# $(CONFIG_DESCRIPTION) &: $(CONFIG_BASE)
|
# $(CONFIG_DESCRIPTION) &: $(CONFIG_BASE)
|
||||||
# $(info Fixing config-base)
|
# $(info Fixing config-base)
|
||||||
# -mkdir -p $(DATA)
|
# -mkdir -p $(DATA)
|
||||||
# python3 scripts/enumerate_config.py -i config/config-base.json -o $(DATA)/config-base.json
|
|
||||||
|
|
||||||
$(DATA):
|
$(DATA):
|
||||||
mkdir -p $(DATA)
|
mkdir -p $(DATA)
|
||||||
@ -128,7 +127,9 @@ EMAIL_ALL = $(EMAIL_HTML) $(EMAIL_TXT)
|
|||||||
EMAIL_TARGET = mail/confirmation.html
|
EMAIL_TARGET = mail/confirmation.html
|
||||||
$(EMAIL_TARGET): $(EMAIL_SRC_MJML) $(EMAIL_SRC_TXT)
|
$(EMAIL_TARGET): $(EMAIL_SRC_MJML) $(EMAIL_SRC_TXT)
|
||||||
$(info Generating email html)
|
$(info Generating email html)
|
||||||
python3 scripts/compile_mjml.py -o $(DATA)/
|
npx mjml mail/*.mjml -o $(DATA)/
|
||||||
|
$(info Copying plaintext mail)
|
||||||
|
cp mail/*.txt $(DATA)/
|
||||||
|
|
||||||
TYPESCRIPT_FULLSRC = $(shell find ts/ -type f -name "*.ts")
|
TYPESCRIPT_FULLSRC = $(shell find ts/ -type f -name "*.ts")
|
||||||
TYPESCRIPT_SRC = $(wildcard ts/*.ts)
|
TYPESCRIPT_SRC = $(wildcard ts/*.ts)
|
||||||
@ -228,15 +229,6 @@ compile: $(GO_TARGET)
|
|||||||
compress:
|
compress:
|
||||||
upx --lzma build/jfa-go
|
upx --lzma build/jfa-go
|
||||||
|
|
||||||
# internal-files:
|
|
||||||
# python3 scripts/embed.py internal
|
|
||||||
#
|
|
||||||
# external-files:
|
|
||||||
# python3 scripts/embed.py external
|
|
||||||
# -mkdir -p build
|
|
||||||
# $(info copying internal data into build/)
|
|
||||||
# cp -r data build/
|
|
||||||
|
|
||||||
install:
|
install:
|
||||||
cp -r build $(DESTDIR)/jfa-go
|
cp -r build $(DESTDIR)/jfa-go
|
||||||
|
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
### fixconfig
|
|
||||||
|
|
||||||
Python's `json` library retains the order of data in a JSON file, which meant settings sent to the web page would be in the right order. Go's `encoding/json` and maps do not retain order, so `enumerate/enumerate_config.py` opens the json file, and for each section, adds an "order" array which tells the web page in which order to display settings.
|
|
||||||
Specify the input and output files with `-i` and `-o` respectively.
|
|
1
config/README.txt
Normal file
1
config/README.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
The two python scripts here, `config-json-to-new-yaml.py` and `gen-rough-schema.py` were used to convert the old format, which was stored in a JSON file, to the new format in YAML. The latter script is used to get the possible values for settings and sections, so they could be properly defined in common/config.go.
|
@ -1,52 +0,0 @@
|
|||||||
import subprocess
|
|
||||||
import shutil
|
|
||||||
import os
|
|
||||||
import argparse
|
|
||||||
from pathlib import Path
|
|
||||||
from multiprocessing import Process
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument("-o", "--output", help="output directory for .html and .txt files")
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
def runcmd(cmd):
|
|
||||||
if os.name == "nt":
|
|
||||||
return subprocess.check_output(cmd, shell=True)
|
|
||||||
with subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) as proc:
|
|
||||||
return proc.communicate()
|
|
||||||
|
|
||||||
def compile(mjml: Path):
|
|
||||||
fname = mjml.with_suffix(".html")
|
|
||||||
runcmd(f"npx mjml {str(mjml)} -o {str(fname)}")
|
|
||||||
if fname.is_file():
|
|
||||||
print(f"Compiled {mjml.name}")
|
|
||||||
|
|
||||||
local_path = Path("mail")
|
|
||||||
|
|
||||||
threads = []
|
|
||||||
|
|
||||||
for mjml in [f for f in local_path.iterdir() if f.is_file() and "mjml" in f.suffix]:
|
|
||||||
p = Process(target=compile, args=(mjml,))
|
|
||||||
p.start()
|
|
||||||
threads.append(p)
|
|
||||||
|
|
||||||
for thread in threads:
|
|
||||||
thread.join()
|
|
||||||
|
|
||||||
html = [f for f in local_path.iterdir() if f.is_file() and "html" in f.suffix]
|
|
||||||
|
|
||||||
output = Path(args.output) # local_path.parent / "build" / "data"
|
|
||||||
output.mkdir(parents=True, exist_ok=True)
|
|
||||||
|
|
||||||
for f in html:
|
|
||||||
shutil.copy(str(f), str(output / f.name))
|
|
||||||
print(f"Copied {f.name} to {str(output / f.name)}")
|
|
||||||
txtfile = f.with_suffix(".txt")
|
|
||||||
if txtfile.is_file():
|
|
||||||
shutil.copy(str(txtfile), str(output / txtfile.name))
|
|
||||||
print(f"Copied {txtfile.name} to {str(output / txtfile.name)}")
|
|
||||||
else:
|
|
||||||
print(
|
|
||||||
f"Warning: {txtfile.name} does not exist. Text versions of emails should be supplied."
|
|
||||||
)
|
|
Loading…
Reference in New Issue
Block a user