94 lines
2.5 KiB
Makefile
94 lines
2.5 KiB
Makefile
|
# Configuration settings
|
||
|
PLUGIN_NAME ?= $(shell basename $(PWD))
|
||
|
PLUGIN_VERSION ?= 0.3.0
|
||
|
|
||
|
# Source files
|
||
|
TS_FILES := $(shell find src -name *.ts)
|
||
|
TSX_FILES := $(shell find src -name *.tsx)
|
||
|
SRC_FILES := $(TS_FILES) $(TSX_FILES) plugin.json
|
||
|
|
||
|
TAR_FILES := bin dist main.py package.json plugin.json
|
||
|
|
||
|
# plugin dir
|
||
|
DATA_PATH ?= homebrew
|
||
|
|
||
|
# SSH Configuration
|
||
|
SSH_USER ?= gamer
|
||
|
SSH_HOST ?= 192.168.0.246
|
||
|
SSH_MOUNT_PATH ?= /tmp/remote
|
||
|
SSH_DATA_PATH ?= /home/$(SSH_USER)/$(DATA_PATH)
|
||
|
|
||
|
# Default target is to build and restart crankshaft
|
||
|
.PHONY: default
|
||
|
default: build restart
|
||
|
|
||
|
.PHONY: build
|
||
|
build: build ## Builds the project
|
||
|
cd backend && ./build.sh && cd ..
|
||
|
|
||
|
dist: $(SRC_FILES) node_modules
|
||
|
npm run build
|
||
|
|
||
|
.PHONY: watch
|
||
|
watch: ## Build and watch for source code changes
|
||
|
npm run build-watch
|
||
|
|
||
|
package-lock.json: package.json
|
||
|
npm i
|
||
|
|
||
|
node_modules: node_modules/installed ## Install dependencies
|
||
|
node_modules/installed: package-lock.json
|
||
|
npm ci
|
||
|
touch $@
|
||
|
|
||
|
.PHONY: restart
|
||
|
restart: ## Restart crankshaft
|
||
|
ssh $(SSH_USER)@$(SSH_HOST) sudo systemctl restart plugin_loader -S
|
||
|
|
||
|
.PHONY: debug
|
||
|
debug: ## Show Makefile variables
|
||
|
@echo "Source Files: $(SRC_FILES)"
|
||
|
|
||
|
.PHONY: cef-debug
|
||
|
cef-debug: ## Open Chrome CEF debugging. Add a network target: localhost:8080
|
||
|
chromium "chrome://inspect/#devices"
|
||
|
|
||
|
.PHONY: tunnel
|
||
|
tunnel: ## Create an SSH tunnel to remote Steam Client (accessible on localhost:4040)
|
||
|
ssh $(SSH_USER)@$(SSH_HOST) -N -f -L 4040:localhost:8080
|
||
|
|
||
|
$(SSH_MOUNT_PATH)/.mounted:
|
||
|
mkdir -p $(SSH_MOUNT_PATH)
|
||
|
sshfs -o default_permissions $(SSH_USER)@$(SSH_HOST):$(SSH_DATA_PATH) $(SSH_MOUNT_PATH)
|
||
|
touch $(SSH_MOUNT_PATH)/.mounted
|
||
|
$(MAKE) tunnel
|
||
|
|
||
|
# Cleans and transfers the project
|
||
|
$(SSH_MOUNT_PATH)/plugins/$(PLUGIN_NAME): $(SRC_FILES)
|
||
|
# rm -rf $(SSH_MOUNT_PATH)/plugins/$(PLUGIN_NAME)
|
||
|
# mkdir -p $(SSH_MOUNT_PATH)/plugins/$(PLUGIN_NAME)
|
||
|
# cp -r $(TAR_FILES) $(SSH_MOUNT_PATH)/plugins/$(PLUGIN_NAME)
|
||
|
|
||
|
# Cleans and transfers the project
|
||
|
$(SSH_MOUNT_PATH)/plugins/$(PLUGIN_NAME): $(SRC_FILES)
|
||
|
rsync -avh $(PWD)/ $(SSH_MOUNT_PATH)/plugins/$(PLUGIN_NAME) --delete
|
||
|
|
||
|
.PHONY: remote-restart
|
||
|
remote-restart: ## Restart remote crankshaft
|
||
|
ssh $(SSH_USER)@$(SSH_HOST) sudo systemctl restart plugin_loader
|
||
|
|
||
|
.PHONY: mount
|
||
|
mount: $(SSH_MOUNT_PATH)/.mounted
|
||
|
|
||
|
.PHONY: remote-update
|
||
|
remote-update: $(SSH_MOUNT_PATH)/plugins/$(PLUGIN_NAME)
|
||
|
|
||
|
.PHONY: clean
|
||
|
clean: ## Clean all build artifacts
|
||
|
rm -rf build dist bin
|
||
|
|
||
|
.PHONY: help
|
||
|
help: ## Show this help message
|
||
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
||
|
|