working version with binary wrapper
This commit is contained in:
parent
ce861c69ba
commit
1439bb942f
@ -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"),
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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,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
|
@ -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),
|
||||
|
Loading…
x
Reference in New Issue
Block a user