52 lines
1.3 KiB
Makefile
52 lines
1.3 KiB
Makefile
APP := jukebox
|
|
APP_PKG := ./cmd/jukebox
|
|
APP_URL := http://127.0.0.1:8080
|
|
|
|
ROOT_DIR := $(CURDIR)
|
|
DEV_DIR := $(ROOT_DIR)/.tmp
|
|
CONFIG_DIR := $(DEV_DIR)/config
|
|
MEDIA_DIR := $(DEV_DIR)/media
|
|
MOUNT_DIR := $(DEV_DIR)/mount
|
|
CONFIG_PATH := $(CONFIG_DIR)/config.json
|
|
GOCACHE_DIR := $(DEV_DIR)/gocache
|
|
|
|
.PHONY: run test build release dev-dirs
|
|
|
|
dev-dirs:
|
|
mkdir -p "$(CONFIG_DIR)" "$(MEDIA_DIR)" "$(MOUNT_DIR)" "$(GOCACHE_DIR)"
|
|
|
|
run: dev-dirs
|
|
@sh -c '\
|
|
url="$(APP_URL)"; \
|
|
open_url() { \
|
|
if command -v open >/dev/null 2>&1; then \
|
|
open "$$1"; \
|
|
elif command -v powershell >/dev/null 2>&1; then \
|
|
powershell -NoProfile -Command "Start-Process '\''$$1'\''" >/dev/null; \
|
|
elif command -v xdg-open >/dev/null 2>&1; then \
|
|
xdg-open "$$1" >/dev/null 2>&1; \
|
|
fi; \
|
|
}; \
|
|
for _ in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do \
|
|
if curl -fsS "$$url/health" >/dev/null 2>&1; then \
|
|
open_url "$$url"; \
|
|
exit 0; \
|
|
fi; \
|
|
sleep 1; \
|
|
done \
|
|
' &
|
|
GOCACHE="$(GOCACHE_DIR)" go run $(APP_PKG) \
|
|
-config "$(CONFIG_PATH)" \
|
|
-media "$(MEDIA_DIR)" \
|
|
-mount "$(MOUNT_DIR)" \
|
|
-addr ":8080"
|
|
|
|
test: dev-dirs
|
|
GOCACHE="$(GOCACHE_DIR)" go test ./...
|
|
|
|
build: dev-dirs
|
|
GOCACHE="$(GOCACHE_DIR)" go build -o "$(ROOT_DIR)/$(APP)" $(APP_PKG)
|
|
|
|
release:
|
|
./ops/build-release.sh
|