From cf0be2159672e0dae90ad892409b1432940a96c2 Mon Sep 17 00:00:00 2001 From: Kai Vogelgesang Date: Mon, 26 Sep 2022 01:13:11 +0200 Subject: [PATCH] Add lua minifier --- Dockerfile | 3 ++- lua/justfile | 7 ++++--- lua/minify.lua | 16 ++++++++++++++++ 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 lua/minify.lua diff --git a/Dockerfile b/Dockerfile index d24b469..6f63fde 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM archlinux:base-devel AS builder -RUN pacman -Syu npm luarocks just --noconfirm +RUN pacman -Syu npm lua luarocks just --noconfirm # build frontend WORKDIR /frontend @@ -11,6 +11,7 @@ RUN npm install && npm run build WORKDIR /lua COPY lua . RUN luarocks install tl && \ + luarocks install dumbluaparser && \ eval $(luarocks path) && \ just build diff --git a/lua/justfile b/lua/justfile index cfe7f6d..3489553 100644 --- a/lua/justfile +++ b/lua/justfile @@ -1,17 +1,18 @@ default: @just --list -lua_files := `find . -type f -name "*.lua" ! -path './out/*' ! -name tlconfig.lua -printf "%p "` +lua_files := `find . -type f -name "*.lua" ! -path './out/*' ! -name tlconfig.lua ! -name minify.lua -printf "%p "` teal_files := `find . -type f -name "*.tl" ! -name '*.d.tl' -printf "%p "` build: mkdir -p out for file in {{lua_files}}; do \ - cp $file out; \ + lua minify.lua $file; \ done for file in {{teal_files}}; do \ tl gen $file; \ - mv ${file%.tl}.lua out; \ + lua minify.lua ${file%.tl}.lua; \ + rm ${file%.tl}.lua; \ done alias b := build diff --git a/lua/minify.lua b/lua/minify.lua new file mode 100644 index 0000000..95fc883 --- /dev/null +++ b/lua/minify.lua @@ -0,0 +1,16 @@ +local args = { ... } +local filename = args[1] +print(('filename: "%s"'):format(filename)) + +local parser = require("dumbParser") + +local tokens = parser.tokenizeFile(filename) +local ast = parser.parse(tokens) + +parser.minify(ast, true) + +local output = parser.toLua(ast) + +local f = io.open("out/"..filename, "w") +f:write(output) +f:close() \ No newline at end of file