Files
jukebox_maker/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