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]]
|
[[package]]
|
||||||
name = "usdpl-back"
|
name = "usdpl-back"
|
||||||
version = "0.7.0"
|
version = "0.7.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4ca96dac4ee471e9534940f99cb36f5212cbfaf4e7779eb3ba970d3c511d9583"
|
checksum = "58928ed65332c30b9b9be5140fcdab97e45db679a5845d829aa26492765272e5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-recursion",
|
"async-recursion",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
|
|
@ -6,7 +6,7 @@ edition = "2021"
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
usdpl-back = { version = "0.7.0", features = ["blocking"]}
|
usdpl-back = { version = "0.7.2", features = ["blocking"]}
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
serde_json = "1.0"
|
serde_json = "1.0"
|
||||||
|
|
||||||
|
|
|
@ -18,14 +18,21 @@ use usdpl_back::core::serdes::Primitive;
|
||||||
use usdpl_back::Instance;
|
use usdpl_back::Instance;
|
||||||
|
|
||||||
fn main() -> Result<(), ()> {
|
fn main() -> Result<(), ()> {
|
||||||
|
|
||||||
#[cfg(debug_assertions)]
|
#[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))]
|
#[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)]
|
#[cfg(debug_assertions)]
|
||||||
{
|
{
|
||||||
if std::path::Path::new(&log_filepath).exists() {
|
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(
|
WriteLogger::init(
|
||||||
|
@ -41,6 +48,8 @@ fn main() -> Result<(), ()> {
|
||||||
std::fs::File::create(&log_filepath).unwrap(),
|
std::fs::File::create(&log_filepath).unwrap(),
|
||||||
)
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
log::debug!("Logging to: {:?}.", log_filepath);
|
||||||
|
println!("Logging to: {:?}", log_filepath);
|
||||||
log::info!("Starting back-end ({} v{})", PACKAGE_NAME, PACKAGE_VERSION);
|
log::info!("Starting back-end ({} v{})", PACKAGE_NAME, PACKAGE_VERSION);
|
||||||
println!("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 {
|
pub fn settings_dir() -> std::path::PathBuf {
|
||||||
usdpl_back::api::dirs::home()
|
usdpl_back::api::dirs::home()
|
||||||
.unwrap_or_else(|| "/home/deck".into())
|
.unwrap_or_else(|| "/tmp/".into())
|
||||||
.join(".config/powertools/")
|
.join(".config/powertools/")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue