42 lines
1.3 KiB
Makefile
42 lines
1.3 KiB
Makefile
project_name := "nixcn-cms"
|
|
project_dir := justfile_directory()
|
|
server_enrty := "main.go"
|
|
output_dir := join(project_dir, ".outputs")
|
|
client_dir := join(project_dir, "client")
|
|
exec_path := join(output_dir, project_name)
|
|
go_cmd := `realpath $(which go)`
|
|
bun_cmd := `realpath $(which bun)`
|
|
|
|
default: install clean build-back build-client run-back
|
|
|
|
backend: clean build-back run-back
|
|
|
|
install:
|
|
cd {{ client_dir }} && {{ bun_cmd }} install
|
|
|
|
clean:
|
|
rm -rf {{ output_dir }}
|
|
mkdir -p {{ output_dir }}
|
|
cp {{ join(project_dir, "config.default.yaml") }} {{ join(output_dir, "config.yaml") }}
|
|
|
|
client:
|
|
cd {{ client_dir }} && {{ bun_cmd }} dev
|
|
|
|
build-client:
|
|
cd {{ client_dir }} && {{ bun_cmd }} run build --outDir {{ join(output_dir, "static") }}
|
|
|
|
build-back:
|
|
{{ go_cmd }} build -o {{ exec_path }}{{ if os() == "windows" { ".exe" } else { "" } }} {{ server_enrty }}
|
|
|
|
run-back:
|
|
cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} {{ exec_path }}{{ if os() == "windows" { ".exe" } else { "" } }}
|
|
|
|
test-back:
|
|
cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} GO_ENV=test go test -C .. ./...
|
|
|
|
dev-back: clean
|
|
watchexec -r -e go,yaml,tpl -i '.devenv/**' -i '.direnv/**' -i 'client/**' -i 'vendor/**' 'go build -o {{ join(output_dir, "nixcn-cms") }} . && cd {{ output_dir }} && CONFIG_PATH={{ output_dir }} {{ exec_path }}'
|
|
|
|
dev:
|
|
devenv up --verbose
|