diff --git a/.air.toml b/.air.toml new file mode 100644 index 0000000..7ea2199 --- /dev/null +++ b/.air.toml @@ -0,0 +1,17 @@ +root = "." +tmp_dir = "_scratch/air" + +[build] +cmd = "go build -o ./_scratch/air/antholume ." +full_bin = "./_scratch/air/antholume serve" +delay = 1000 +include_ext = ["go", "tpl", "tmpl", "html", "css", "js", "yaml", "yml"] +exclude_dir = ["_scratch", "build", "data", "frontend", "node_modules"] +exclude_file = ["assets/style.css"] +stop_on_error = true + +[log] +time = true + +[misc] +clean_on_exit = true diff --git a/.gitignore b/.gitignore index 8796730..6434448 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ TODO.md .DS_Store data/ build/ +tmp/ .direnv/ cover.html node_modules diff --git a/AGENTS.md b/AGENTS.md index f462b22..334d59d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -42,7 +42,7 @@ Regenerate: ### Common commands - Full dev stack: `make dev` (backend on `:8585` + Vite frontend on `:5173`) -- Backend only: `make dev_backend` +- Backend only: `make dev_backend` (live-reloads with Air) - Frontend only: `make dev_frontend` - Direct backend run: `CONFIG_PATH=./data DATA_PATH=./data REGISTRATION_ENABLED=true go run main.go serve` - No-auth dev run: `CONFIG_PATH=./data DATA_PATH=./data REGISTRATION_ENABLED=true DISABLE_AUTH=true DISABLE_AUTH_USER=evan go run main.go serve` diff --git a/Makefile b/Makefile index 26e8bd4..7340ee7 100644 --- a/Makefile +++ b/Makefile @@ -46,7 +46,7 @@ dev: $(MAKE) -j2 dev_backend dev_frontend dev_backend: - $(DEV_ENV) go run main.go serve + $(DEV_ENV) air dev_frontend: cd frontend && bun run dev diff --git a/README.md b/README.md index a938af0..ad8d7db 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,7 @@ Run Development: make dev # Or run one side only -make dev_backend +make dev_backend # live-reloads with air make dev_frontend ``` diff --git a/flake.nix b/flake.nix index 104858b..e478cf7 100644 --- a/flake.nix +++ b/flake.nix @@ -20,6 +20,7 @@ { devShells.default = pkgs.mkShell { packages = with pkgs; [ + air go golangci-lint gopls