#!/bin/bash # 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/') 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" 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