# npm install github:Ponali/luamin.js
LUAS = $(shell find src -type f -name '*.lua')
HELPS = $(shell find ./src/halyde/apps/helpdb/ src -type f -name '*')
JSONS = $(shell find src -type f -name '*.json')
ANSS = $(shell find src -type f -name '*.ans')

LZ4S = $(patsubst src/%.lua, release/%.lua, $(LUAS))
COPIED = $(patsubst src/%, release/%, $(JSONS)) $(patsubst src/%, release/%, $(ANSS))
COMPRESSED = $(patsubst src/%, release/%, $(HELPS))

all: $(LZ4S) $(COPIED) $(COMPRESSED)

#minify = ~/noommin/noommin
minify = node -e "console.log(require('lua-format').Minify(require('fs').readFileSync(process.argv[1],'utf-8'),{RenameVariables:true,RenameGlobals:false,SolveMath:false,Indentation:'\t'}))"

compress = python3 -c "import sys, lz4.block; sys.stdout.buffer.write(lz4.block.compress(sys.stdin.buffer.read(), store_size=False, compression=12))"

release/init.lua: src/init.lua
	mkdir -p $(dir $@)
	$(minify) "$<" > "$@"

release/webinstall.lua: src/webinstall.lua
	mkdir -p $(dir $@)
	$(minify) "$<" > "$@"
    
release/halyde/apps/helpdb/%: src/halyde/apps/helpdb/%
	mkdir -p $(dir $@)
	cat "$<" | $(compress) > "$@"

release/%.lua: src/%.lua
	mkdir -p $(dir $@)
	$(minify) "$<" | $(compress) > "$@"

release/%: src/%
	mkdir -p $(dir $@)
	cp "$<" "$@"

clean:
	rm -rf release
