working version with binary wrapper

This commit is contained in:
notplants 2025-05-21 17:28:55 -04:00
parent ce861c69ba
commit 1439bb942f
4 changed files with 35 additions and 7 deletions

View File

@ -62,6 +62,8 @@ pub fn get_peach_config_defaults() -> HashMap<String, String> {
("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"),

View File

@ -272,7 +272,9 @@ pub async fn init_sbot() -> Result<TildeClient, PeachError> {
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)
}

View File

@ -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 <CONFIG_FILE> <TILDEFRIENDS_PATH> <ADDITIONAL ARGUMENTS>"
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,11 +33,16 @@ 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"

View File

@ -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<String, TildeError> {
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 <additional args
let mut full_args = vec![self.tilde_config_path.as_str(), self.tilde_binary_path.as_str()];
full_args.extend(args);
command.args(full_args);
let output = command
.output().map_err(|e| TildeError {
message: format!("Command execution failed: {}", e),