# mGPUmanager build + deploy targets. # # `make build` — compile the Go binary into ./bin/mgpumanager. # `make test` — go test ./... # `make run` — run locally against ./config/consumers.yaml. # `make deploy` — rsync binary + config + user-unit to mRock and # (re)start it under `systemctl --user`. BIN := bin/mgpumanager PKG := ./cmd/mgpumanager GO ?= go HOST ?= mrock REMOTE_DIR ?= /home/m/dev/mGPUmanager USER_UNIT_DIR ?= /home/m/.config/systemd/user .PHONY: build test run deploy clean build: mkdir -p bin $(GO) build -trimpath -ldflags="-s -w" -o $(BIN) $(PKG) test: $(GO) test ./... run: build ./$(BIN) --config config/consumers.yaml --log-level debug # Deploys to mRock as a user unit (systemd --user). User lingering must # be enabled on the target host: `sudo loginctl enable-linger m`. deploy: build rsync -a --mkpath $(BIN) $(HOST):$(REMOTE_DIR)/$(BIN) rsync -a --mkpath config/consumers.yaml $(HOST):$(REMOTE_DIR)/config/consumers.yaml rsync -a --mkpath systemd/mgpumanager.service $(HOST):$(USER_UNIT_DIR)/mgpumanager.service ssh $(HOST) "systemctl --user daemon-reload && systemctl --user enable mgpumanager.service && systemctl --user restart mgpumanager.service && systemctl --user status mgpumanager.service --no-pager -l" clean: rm -rf bin