default:
    @just --list

lua_files := `find . -type f -name "*.lua" ! -path './out/*' ! -name tlconfig.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; \
    done
    for file in {{teal_files}}; do \
      tl gen $file; \
      mv ${file%.tl}.lua out; \
    done

alias b := build

clean:
    rm -r out
    
alias c := clean

watch:
    while sleep 0.1; do \
        find . -type f ! -path './out/*' | entr -d just build; \
        [ $? -eq 0 ] && exit 0; \
    done

alias w := watch