riot: support multiple remotes, delimiter=comma (,)

This commit is contained in:
xiongdian.me 2023-11-03 18:55:24 +08:00
parent c5841e4aaa
commit 4e5dfce9fb

View File

@ -91,8 +91,9 @@ get_server_meta() {
esac
}
parse_remote() {
# remote setting, including jump servers
# will be called only once
# called for every remote
# provides:
SERVER=""
TRUST_SERVER=1
@ -102,7 +103,7 @@ SSH_OPTIONS="" # optional
if [[ "$RIOT_TRUST_CLIENT" == "1" ]]; then
SSH_OPTIONS='-o ControlMaster=auto -o ControlPath=/tmp/sshcm-%C -o PermitLocalCommand=yes'
fi
parse_remote() {
# handle input
local remote="$1"
local jump_servers=""
# loop for jump servers
@ -212,12 +213,14 @@ router() {
print_help
exit
fi
parse_remote "$1"
IFS=',' read -ra remotes <<< "$1"
for remote in "${remotes[@]}"; do
if [[ -z "$remote" ]]; then
continue
fi
parse_remote "$remote"
case $2 in
-h|--help)
print_help
exit
;;
ssh|"" )
run_ssh ssh "${@:3}"
;;
@ -241,6 +244,7 @@ router() {
fmt_fatal "unknown command: $2"
;;
esac
done
}
router "${GOT_OPTS[@]}"