peach-workspace/run-tilde-sbot.sh
2025-05-27 17:20:53 -04:00

45 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# 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)
NETWORK_KEY=$(grep -v '^\s*#' "$CONFIG_FILE" | grep -E '^\s*network_key\s*=' | sed -E 's/.*=\s*"?(.*?)"?\s*/\1/')
DATABASE_DIRECTORY=$(grep -v '^\s*#' "$CONFIG_FILE" \
| grep -E '^\s*database_directory\s*=' \
| sed -E 's/.*=\s*"([^"]*)"\s*/\1/')
# Extract all other key-value pairs except network_key
ARGS=$(grep -v '^\s*#' "$CONFIG_FILE" \
| grep -E '^\s*[a-zA-Z0-9_.-]+\s*=' \
| grep -v '^\s*network_key\s*=' \
| sed -E 's/\s*=\s*/=/' \
| tr -d '"' \
| paste -sd, -)
echo "ARGS: $ARGS"
[ -n "$NETWORK_KEY" ] && echo "NETWORK_KEY: $NETWORK_KEY"
[ -n "$DATABASE_DIRECTORY" ] && echo "DATABASE_DIRECTORY: $DATABASE_DIRECTORY"
# build and exec the command
CMD=("$TILDEFRIENDS_PATH" run)
[ -n "$ARGS" ] && CMD+=(-a "$ARGS")
[ -n "$NETWORK_KEY" ] && CMD+=(-k "$NETWORK_KEY")
[ -n "$DATABASE_DIRECTORY" ] && CMD+=(-d "$DATABASE_DIRECTORY/db.sqlite")
echo "Running command:"
printf "%q " "${CMD[@]}"
echo
exec "${CMD[@]}"