cfg/bin/shareport
Knut Ahlers b5a94e2ad5
Add usage, opts, fix port usage
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2020-01-11 14:31:31 +01:00

61 lines
1.2 KiB
Bash
Executable file

#!/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)
# Parse options
while getopts ":hp:v" o; do
case "${o}" in
h)
usage
exit 0
;;
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 "localhost:${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[@]}"