Add standalone desktop workflow
This commit is contained in:
51
Makefile
Normal file
51
Makefile
Normal file
@@ -0,0 +1,51 @@
|
||||
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
|
||||
Reference in New Issue
Block a user