Add lua minifier

This commit is contained in:
Kai Vogelgesang 2022-09-26 01:13:11 +02:00
parent 7a7275cf66
commit cf0be21596
Signed by: kai
GPG Key ID: 0A95D3B6E62C0879
3 changed files with 22 additions and 4 deletions

View File

@ -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

View File

@ -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

16
lua/minify.lua Normal file
View File

@ -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()