Added support for profiling. Removed the pkg module altogether. Everything except old sync is now using code generated by sqlc.
93 lines
2.3 KiB
Makefile
93 lines
2.3 KiB
Makefile
set dotenv-load
|
|
|
|
# Build the application
|
|
all: build test
|
|
|
|
templ-install:
|
|
@if ! command -v templ > /dev/null; then \
|
|
read -p "Go's 'templ' is not installed on your machine. Do you want to install it? [Y/n] " choice; \
|
|
if [ "$$choice" != "n" ] && [ "$$choice" != "N" ]; then \
|
|
go install github.com/a-h/templ/cmd/templ@latest; \
|
|
if [ ! -x "$$(command -v templ)" ]; then \
|
|
echo "templ installation failed. Exiting..."; \
|
|
exit 1; \
|
|
fi; \
|
|
else \
|
|
echo "You chose not to install templ. Exiting..."; \
|
|
exit 1; \
|
|
fi; \
|
|
fi
|
|
|
|
tailwind-macos:
|
|
@if [ ! -f tailwindcss ]; then curl -sL https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-macos-arm64 -o tailwindcss; fi
|
|
@chmod +x tailwindcss
|
|
|
|
tailwind-linux:
|
|
@if [ ! -f tailwindcss ]; then curl -sL https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-linux-x64 -o tailwindcss; fi
|
|
@chmod +x tailwindcss
|
|
|
|
sqlc-generate:
|
|
@sqlc generate
|
|
|
|
migrate-create name:
|
|
@migrate create -ext sql -dir internal/db/migrations -seq {{name}}
|
|
|
|
build:
|
|
@echo "Building..."
|
|
@sqlc generate
|
|
@templ generate
|
|
@./tailwindcss -i cmd/web/assets/css/input.css -o cmd/web/assets/css/output.css
|
|
@swag init -d ./cmd/,./internal/backend/ -o ./cmd/docs
|
|
@go build -o main cmd/main.go
|
|
|
|
run:
|
|
@templ generate
|
|
@go run cmd/main.go
|
|
|
|
test: build
|
|
@echo "Testing..."
|
|
@go test ./... -v
|
|
|
|
# Clean the binary
|
|
clean:
|
|
@echo "Cleaning..."
|
|
@rm -f main
|
|
|
|
# Create DB container
|
|
docker-run:
|
|
@if docker compose up --build 2>/dev/null; then \
|
|
: ; \
|
|
else \
|
|
echo "Falling back to Docker Compose V1"; \
|
|
docker-compose up --build; \
|
|
fi
|
|
|
|
# Shutdown DB container
|
|
docker-down:
|
|
@if docker compose down 2>/dev/null; then \
|
|
: ; \
|
|
else \
|
|
echo "Falling back to Docker Compose V1"; \
|
|
docker-compose down; \
|
|
fi
|
|
|
|
watch-templ:
|
|
templ generate --watch --proxy="http://localhost:8080" --cmd="go run ."
|
|
|
|
# Live Reload
|
|
watch:
|
|
@if command -v air > /dev/null; then \
|
|
air; \
|
|
echo "Watching...";\
|
|
else \
|
|
read -p "Go's 'air' is not installed on your machine. Do you want to install it? [Y/n] " choice; \
|
|
if [ "$$choice" != "n" ] && [ "$$choice" != "N" ]; then \
|
|
go install github.com/air-verse/air@latest; \
|
|
air; \
|
|
echo "Watching...";\
|
|
else \
|
|
echo "You chose not to install air. Exiting..."; \
|
|
exit 1; \
|
|
fi; \
|
|
fi
|