forked from NG-SD-Plugins/PowerTools
Multiplatform Dev (#52)
* Use environment home instead of hard coding home_path * Fix Makefile * Use PathBuf instead of format. Catch else fore /tmp/ default directory * Restore logpath for deployment. Resolve warning from copy() not having err handled. * Undo add #[cfg(debug_assertions)] in wrong place.
This commit is contained in:
parent
2b2a6eaf9d
commit
5d2937af6f
5 changed files with 103 additions and 7 deletions
87
Makefile
Normal file
87
Makefile
Normal file
|
@ -0,0 +1,87 @@
|
|||
# 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)
|
||||
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}'
|
||||
|
4
backend/Cargo.lock
generated
4
backend/Cargo.lock
generated
|
@ -1077,9 +1077,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "usdpl-back"
|
||||
version = "0.7.0"
|
||||
version = "0.7.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "4ca96dac4ee471e9534940f99cb36f5212cbfaf4e7779eb3ba970d3c511d9583"
|
||||
checksum = "58928ed65332c30b9b9be5140fcdab97e45db679a5845d829aa26492765272e5"
|
||||
dependencies = [
|
||||
"async-recursion",
|
||||
"async-trait",
|
||||
|
|
|
@ -6,7 +6,7 @@ edition = "2021"
|
|||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
usdpl-back = { version = "0.7.0", features = ["blocking"]}
|
||||
usdpl-back = { version = "0.7.2", features = ["blocking"]}
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
serde_json = "1.0"
|
||||
|
||||
|
|
|
@ -18,14 +18,21 @@ use usdpl_back::core::serdes::Primitive;
|
|||
use usdpl_back::Instance;
|
||||
|
||||
fn main() -> Result<(), ()> {
|
||||
|
||||
#[cfg(debug_assertions)]
|
||||
let log_filepath = format!("/home/deck/{}.log", PACKAGE_NAME);
|
||||
let log_filepath = usdpl_back::api::dirs::home()
|
||||
.unwrap_or_else(|| "/tmp/".into())
|
||||
.join(PACKAGE_NAME.to_owned()+".log");
|
||||
#[cfg(not(debug_assertions))]
|
||||
let log_filepath = format!("/tmp/{}.log", PACKAGE_NAME);
|
||||
let log_filepath = std::path::PathBuf.new("/tmp/"+PACKAGE_NAME.to_owned()+".log");
|
||||
#[cfg(debug_assertions)]
|
||||
let old_log_filepath = usdpl_back::api::dirs::home()
|
||||
.unwrap_or_else(|| "/tmp/".into())
|
||||
.join(PACKAGE_NAME.to_owned()+".log.old");
|
||||
#[cfg(debug_assertions)]
|
||||
{
|
||||
if std::path::Path::new(&log_filepath).exists() {
|
||||
std::fs::copy(&log_filepath, format!("/home/deck/{}.log.old", PACKAGE_NAME)).unwrap();
|
||||
std::fs::copy(&log_filepath, &old_log_filepath).expect("Unable to increment logs. Do you have write permissions?");
|
||||
}
|
||||
}
|
||||
WriteLogger::init(
|
||||
|
@ -41,6 +48,8 @@ fn main() -> Result<(), ()> {
|
|||
std::fs::File::create(&log_filepath).unwrap(),
|
||||
)
|
||||
.unwrap();
|
||||
log::debug!("Logging to: {:?}.", log_filepath);
|
||||
println!("Logging to: {:?}", log_filepath);
|
||||
log::info!("Starting back-end ({} v{})", PACKAGE_NAME, PACKAGE_VERSION);
|
||||
println!("Starting back-end ({} v{})", PACKAGE_NAME, PACKAGE_VERSION);
|
||||
|
||||
|
|
|
@ -26,6 +26,6 @@ pub fn unwrap_maybe_fatal<T: Sized, E: Display>(result: Result<T, E>, message: &
|
|||
|
||||
pub fn settings_dir() -> std::path::PathBuf {
|
||||
usdpl_back::api::dirs::home()
|
||||
.unwrap_or_else(|| "/home/deck".into())
|
||||
.unwrap_or_else(|| "/tmp/".into())
|
||||
.join(".config/powertools/")
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue