45 lines
1.8 KiB
Makefile
45 lines
1.8 KiB
Makefile
NAS := luxick@192.168.3.3
|
|
|
|
COMPANION_WIN := companion/datascape-companion-windows-amd64.exe
|
|
COMPANION_LIN := companion/datascape-companion-linux-amd64
|
|
COMPANION_SRCS := $(wildcard cmd/companion/*.go) $(wildcard cmd/companion/*.html) go.mod go.sum
|
|
|
|
EDITOR_BUNDLE := assets/editor/vendor/codemirror.bundle.js
|
|
EDITOR_SRCS := $(wildcard editor-build/*.js) editor-build/package.json editor-build/package-lock.json
|
|
|
|
.PHONY: deploy companion companion-windows companion-linux companion-release editor
|
|
|
|
# Cross-compiled companion artifacts the wiki binary embeds. Both must exist
|
|
# before `go build .` so embed.FS picks them up.
|
|
companion-release: $(COMPANION_WIN) $(COMPANION_LIN)
|
|
|
|
$(COMPANION_WIN): $(COMPANION_SRCS)
|
|
GOOS=windows GOARCH=amd64 go build -ldflags="-H windowsgui" -o $@ ./cmd/companion
|
|
|
|
$(COMPANION_LIN): $(COMPANION_SRCS)
|
|
GOOS=linux GOARCH=amd64 go build -o $@ ./cmd/companion
|
|
|
|
companion-windows: $(COMPANION_WIN)
|
|
companion-linux: $(COMPANION_LIN)
|
|
|
|
# Local companion build for the host OS (handy for development).
|
|
companion:
|
|
mkdir -p bin
|
|
go build -o bin/ ./cmd/companion
|
|
|
|
# Regenerate the vendored CodeMirror bundle. One-time/dev-only step: run after
|
|
# upgrading the @codemirror/* versions in editor-build/package.json. The built
|
|
# artifact ($(EDITOR_BUNDLE)) is committed; `go build` only consumes it and
|
|
# never runs Node.
|
|
editor: $(EDITOR_BUNDLE)
|
|
|
|
$(EDITOR_BUNDLE): $(EDITOR_SRCS)
|
|
cd editor-build && npm ci && npm run build
|
|
|
|
deploy: companion-release
|
|
GOOS=linux GOARCH=arm GOARM=7 go build -o datascape-arm .
|
|
ssh $(NAS) 'kill $$(cat /share/homes/luxick/.local/bin/datascape.pid) 2>/dev/null; rm -f /share/homes/luxick/.local/bin/datascape.pid'
|
|
scp datascape-arm $(NAS):/share/homes/luxick/.local/bin/datascape
|
|
ssh $(NAS) /share/homes/luxick/.local/bin/datascape-start.sh
|
|
rm datascape-arm
|