#!/usr/bin/env bash set -euo pipefail usage() { cat <<'EOF' Usage: start-main.sh -t [tcp_config] start-main.sh -u [udp_config] start-main.sh -tu [tcp_config] [udp_config] Examples: start-main.sh -t /home/mynetspeeder/config-tcp.json start-main.sh -u /home/mynetspeeder/config-udp.json start-main.sh -tu /home/mynetspeeder/config-tcp.json /home/mynetspeeder/config-udp.json EOF } SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_DIR="$(dirname "$SCRIPT_DIR")" COMMANDS_DIR="$SCRIPT_DIR/commands" if [[ $# -lt 1 ]]; then usage exit 1 fi MODE="$1" shift TCP_CONFIG_DEFAULT="$ROOT_DIR/config-tcp.json" UDP_CONFIG_DEFAULT="$ROOT_DIR/config-udp.json" case "$MODE" in -t) TCP_CONFIG="${1:-$TCP_CONFIG_DEFAULT}" bash "$COMMANDS_DIR/tcp_only_start.sh" "$TCP_CONFIG" ;; -u) UDP_CONFIG="${1:-$UDP_CONFIG_DEFAULT}" bash "$COMMANDS_DIR/udp_only_start.sh" "$UDP_CONFIG" ;; -tu) TCP_CONFIG="${1:-$TCP_CONFIG_DEFAULT}" UDP_CONFIG="${2:-$UDP_CONFIG_DEFAULT}" bash "$COMMANDS_DIR/tcp_only_start.sh" "$TCP_CONFIG" bash "$COMMANDS_DIR/udp_only_start.sh" "$UDP_CONFIG" ;; *) usage exit 1 ;; esac