From 1439bb942fb0377a653aeaef60c86e3f23b1a0b0 Mon Sep 17 00:00:00 2001 From: notplants Date: Wed, 21 May 2025 17:28:55 -0400 Subject: [PATCH] working version with binary wrapper --- peach-lib/src/config_manager.rs | 2 ++ peach-lib/src/sbot.rs | 4 +++- run-tilde-sbot.sh | 24 +++++++++++++++++++++--- tilde-client/src/lib.rs | 12 +++++++++--- 4 files changed, 35 insertions(+), 7 deletions(-) diff --git a/peach-lib/src/config_manager.rs b/peach-lib/src/config_manager.rs index 586fbea..99cd66b 100644 --- a/peach-lib/src/config_manager.rs +++ b/peach-lib/src/config_manager.rs @@ -62,6 +62,8 @@ pub fn get_peach_config_defaults() -> HashMap { ("TILDE_SBOT_DATADIR", "/home/peach/.local/share/tildefriends/"), ("TILDE_SBOT_SERVICE", "tilde-sbot.service"), ("TILDE_BINARY_PATH", "/home/peach/tildefriends.standalone"), + ("TILDE_WRAPPER_PATH", "/home/peach/run-tilde-sbot.sh"), + ("TILDE_CONFIG_PATH", "/home/peach/.local/share/tildefriends/tilde-sbot.toml"), ("PEACH_CONFIGDIR", "/var/lib/peachcloud"), ("PEACH_HOMEDIR", "/home/peach"), ("PEACH_WEBDIR", "/usr/share/peach-web"), diff --git a/peach-lib/src/sbot.rs b/peach-lib/src/sbot.rs index c930e19..070c8e7 100644 --- a/peach-lib/src/sbot.rs +++ b/peach-lib/src/sbot.rs @@ -272,7 +272,9 @@ pub async fn init_sbot() -> Result { debug!("Initialising an sbot client with configuration parameters"); let sbot_client = TildeClient { port: sbot_config.ssb_port, - binary_path: config_manager::get_config_value("TILDE_BINARY_PATH")? + tilde_binary_path: config_manager::get_config_value("TILDE_BINARY_PATH")?, + tilde_wrapper_path: config_manager::get_config_value("TILDE_WRAPPER_PATH")?, + tilde_config_path: config_manager::get_config_value("TILDE_CONFIG_PATH")?, }; Ok(sbot_client) } diff --git a/run-tilde-sbot.sh b/run-tilde-sbot.sh index 3098a87..c22aab3 100755 --- a/run-tilde-sbot.sh +++ b/run-tilde-sbot.sh @@ -1,6 +1,19 @@ #!/bin/bash -CONFIG_FILE="/home/notplants/.local/share/tildefriends/sbot-config.toml" +# Exit on error +set -e + +# Usage check +if [ "$#" -lt 2 ]; then + echo "Usage: $0 " + exit 1 +fi + +CONFIG_FILE="$1" +TILDEFRIENDS_PATH="$2" +shift 2 +EXTRA_ARGS=("$@") + # Extract network_key (if it exists) NETWORK_KEY=$(grep -v '^\s*#' "$CONFIG_FILE" | grep -E '^\s*network_key\s*=' | sed -E 's/.*=\s*"?(.*?)"?\s*/\1/') @@ -20,13 +33,18 @@ echo "ARGS: $ARGS" [ -n "$NETWORK_KEY" ] && echo "NETWORK_KEY: $NETWORK_KEY" [ -n "$DATABASE_DIRECTORY" ] && echo "DATABASE_DIRECTORY: $DATABASE_DIRECTORY" -CMD="/home/notplants/computer/projects/peachpub/tilde/tildefriends/out/release/tildefriends.standalone run" +CMD="\"$TILDEFRIENDS_PATH\"" [ -n "$ARGS" ] && CMD="$CMD -a \"$ARGS\"" [ -n "$NETWORK_KEY" ] && CMD="$CMD -k \"$NETWORK_KEY\"" [ -n "$DATABASE_DIRECTORY" ] && CMD="$CMD -d \"$DATABASE_DIRECTORY/db.sqlite\"" +# Append extra arguments +for ARG in "${EXTRA_ARGS[@]}"; do + CMD="$CMD \"$ARG\"" +done + echo "Running command:" echo "$CMD" # Execute the command -eval $CMD +eval $CMD \ No newline at end of file diff --git a/tilde-client/src/lib.rs b/tilde-client/src/lib.rs index 2950025..75a25f4 100644 --- a/tilde-client/src/lib.rs +++ b/tilde-client/src/lib.rs @@ -10,7 +10,9 @@ mod error; pub struct TildeClient { pub port: String, - pub binary_path: String, + pub tilde_binary_path: String, + pub tilde_wrapper_path: String, + pub tilde_config_path: String, } pub fn init_sbot() { println!("++ init sbot!"); @@ -19,8 +21,12 @@ pub fn init_sbot() { impl TildeClient { pub fn run_tilde_command(&self, args: Vec<&str>) -> Result { - let mut command = Command::new(&self.binary_path); - command.args(args); + let mut command = Command::new(&self.tilde_wrapper_path); + // wrapper config_file binary_path