cfg/bin/shareport

66 lines
1.2 KiB
Plaintext
Raw Normal View History

#!/bin/bash
set -euo pipefail
source "${HOME}/bin/script_framework.sh"
function usage() {
echo "Usage: $0 [-hv] [-p prefix] <port>" >&2
}
# Get real shareport command
shareport=$(which -a shareport | grep -v $0 | head -n1)
# Start argument array
args=($shareport)
host=localhost
# Parse options
while getopts ":hi:p:v" o; do
case "${o}" in
h)
usage
exit 0
;;
i)
host="${OPTARG}"
;;
p)
args+=(--var "FQDN_PREFIX=${OPTARG}")
;;
v)
args+=(--log-level debug)
;;
*)
usage
fatal "Invalid option -- ${OPTARG}"
;;
esac
done
shift $((OPTIND - 1))
# Add port
port="${1:-}"
[[ -n $port ]] || fatal "Missing local port as first argument"
args+=(--local-addr "${host}:${port}")
step "Fetching secrets..."
export IDENTITY_FILE=$(mktemp)
export IDENTITY_FILE_PASSWORD=$(vault read -field=passphrase secret/ssh-key/shareport)
vault read -field=private secret/ssh-key/shareport >${IDENTITY_FILE}
# Configure remote
export REMOTE_HOST=knut.dev:22
export REMOTE_SCRIPT="${HOME}/.config/shareport.remote.sh"
export REMOTE_USER=shareport
# Setup removal of SSH key after exit
function cleanup() {
step "Cleaning up..."
rm -f ${IDENTITY_FILE}
}
trap cleanup EXIT
step "Starting shareport..."
"${args[@]}"