#!/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" # 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[@]}"