45 lines
1.1 KiB
Bash
Executable File
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[@]}"
|