Compare commits

...

2 Commits

Author SHA1 Message Date
notplants
8501296ea1 working version with yunohost 2025-05-21 18:07:38 -04:00
notplants
1439bb942f working version with binary wrapper 2025-05-21 17:28:55 -04:00
4 changed files with 26 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_DATADIR", "/home/peach/.local/share/tildefriends/"),
("TILDE_SBOT_SERVICE", "tilde-sbot.service"), ("TILDE_SBOT_SERVICE", "tilde-sbot.service"),
("TILDE_BINARY_PATH", "/home/peach/tildefriends.standalone"), ("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_CONFIGDIR", "/var/lib/peachcloud"),
("PEACH_HOMEDIR", "/home/peach"), ("PEACH_HOMEDIR", "/home/peach"),
("PEACH_WEBDIR", "/usr/share/peach-web"), ("PEACH_WEBDIR", "/usr/share/peach-web"),

View File

@ -270,9 +270,11 @@ pub async fn init_sbot() -> Result<TildeClient, PeachError> {
}; };
debug!("Initialising an sbot client with configuration parameters"); debug!("Initialising an sbot client with configuration parameters");
let database_path = format!("{}/db.sqlite", config_manager::get_config_value("TILDE_SBOT_DATADIR")?);
let sbot_client = TildeClient { let sbot_client = TildeClient {
port: sbot_config.ssb_port, 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_database_path: database_path,
}; };
Ok(sbot_client) Ok(sbot_client)
} }

View File

@ -1,6 +1,17 @@
#!/bin/bash #!/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>"
exit 1
fi
CONFIG_FILE="$1"
TILDEFRIENDS_PATH="$2"
# Extract network_key (if it exists) # 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/') NETWORK_KEY=$(grep -v '^\s*#' "$CONFIG_FILE" | grep -E '^\s*network_key\s*=' | sed -E 's/.*=\s*"?(.*?)"?\s*/\1/')
@ -20,7 +31,7 @@ echo "ARGS: $ARGS"
[ -n "$NETWORK_KEY" ] && echo "NETWORK_KEY: $NETWORK_KEY" [ -n "$NETWORK_KEY" ] && echo "NETWORK_KEY: $NETWORK_KEY"
[ -n "$DATABASE_DIRECTORY" ] && echo "DATABASE_DIRECTORY: $DATABASE_DIRECTORY" [ -n "$DATABASE_DIRECTORY" ] && echo "DATABASE_DIRECTORY: $DATABASE_DIRECTORY"
CMD="/home/notplants/computer/projects/peachpub/tilde/tildefriends/out/release/tildefriends.standalone run" CMD="\"$TILDEFRIENDS_PATH\" run"
[ -n "$ARGS" ] && CMD="$CMD -a \"$ARGS\"" [ -n "$ARGS" ] && CMD="$CMD -a \"$ARGS\""
[ -n "$NETWORK_KEY" ] && CMD="$CMD -k \"$NETWORK_KEY\"" [ -n "$NETWORK_KEY" ] && CMD="$CMD -k \"$NETWORK_KEY\""
[ -n "$DATABASE_DIRECTORY" ] && CMD="$CMD -d \"$DATABASE_DIRECTORY/db.sqlite\"" [ -n "$DATABASE_DIRECTORY" ] && CMD="$CMD -d \"$DATABASE_DIRECTORY/db.sqlite\""
@ -29,4 +40,4 @@ echo "Running command:"
echo "$CMD" echo "$CMD"
# Execute the command # Execute the command
eval $CMD eval $CMD

View File

@ -10,7 +10,8 @@ mod error;
pub struct TildeClient { pub struct TildeClient {
pub port: String, pub port: String,
pub binary_path: String, pub tilde_binary_path: String,
pub tilde_database_path: String,
} }
pub fn init_sbot() { pub fn init_sbot() {
println!("++ init sbot!"); println!("++ init sbot!");
@ -19,8 +20,11 @@ pub fn init_sbot() {
impl TildeClient { impl TildeClient {
pub fn run_tilde_command(&self, args: Vec<&str>) -> Result<String, TildeError> { pub fn run_tilde_command(&self, args: Vec<&str>) -> Result<String, TildeError> {
let mut command = Command::new(&self.binary_path); let mut command = Command::new(&self.tilde_binary_path);
command.args(args); let mut full_args = args.clone();
full_args.push("-d");
full_args.push(self.tilde_database_path.as_str());
command.args(full_args);
let output = command let output = command
.output().map_err(|e| TildeError { .output().map_err(|e| TildeError {
message: format!("Command execution failed: {}", e), message: format!("Command execution failed: {}", e),