Files
pad/Makefile
T
xarmian f7ac533ec1 Fix critical security issues found in pre-public audit
- Fix SQL injection in sort parameter: validate field names against
  alphanumeric regex before interpolating into json_extract queries
- Restrict CORS to localhost origins only (remove http://* wildcard)
- Change Makefile HOST default from 0.0.0.0 to 127.0.0.1
- Add Apache-2.0 license field to web/package.json
2026-03-28 04:20:59 +00:00

59 lines
1.5 KiB
Makefile

.PHONY: build test dev clean web dev-web serve restart lint install
BINARY=pad
BUILD_DIR=./cmd/pad
HOST?=127.0.0.1
INSTALL_DIR?=$(HOME)/.local/bin
build: web
@# Write a build timestamp into embed.go so Go's content-hash cache
@# sees a real change and re-embeds the web assets.
@printf 'package pad\n\nimport "embed"\n\n//go:embed web/build/*\nvar WebUI embed.FS\n\n//go:embed skills/pad/SKILL.md\nvar PadSkill []byte\n\n// embed cache bust: %s\n' "$$(date +%s)" > embed.go
go build -o $(BINARY) $(BUILD_DIR)
build-go:
@printf 'package pad\n\nimport "embed"\n\n//go:embed web/build/*\nvar WebUI embed.FS\n\n//go:embed skills/pad/SKILL.md\nvar PadSkill []byte\n\n// embed cache bust: %s\n' "$$(date +%s)" > embed.go
go build -o $(BINARY) $(BUILD_DIR)
install: build
@# Stop running server, install binary, clear stale pid
-killall -9 $(BINARY) 2>/dev/null
@sleep 1
@mkdir -p $(INSTALL_DIR)
cp -f $(BINARY) $(INSTALL_DIR)/$(BINARY)
rm -f ~/.pad/pad.pid
@echo "Installed $(BINARY) to $(INSTALL_DIR)/$(BINARY)"
@# Trigger server auto-start by running a command
@$(INSTALL_DIR)/$(BINARY) status 2>/dev/null || true
@echo "Server restarted."
test:
go test ./... -v
dev: build-go
./$(BINARY) serve --host $(HOST)
serve: build
-./$(BINARY) stop 2>/dev/null
@sleep 1
./$(BINARY) serve --host $(HOST)
restart: build-go
-./$(BINARY) stop 2>/dev/null
@sleep 1
./$(BINARY) serve --host $(HOST)
web:
cd web && npm run build
dev-web:
cd web && npm run dev
clean:
rm -f $(BINARY)
rm -rf web/build
go clean ./...
lint:
go vet ./...