scwrypts v4.4 config adjustments; added os dependencies; removed dotwryn.env.vim references from setup; generate i3 config on setup
This commit is contained in:
3
scwrypts/remote/lib/bastion.module.zsh
Normal file
3
scwrypts/remote/lib/bastion.module.zsh
Normal file
@ -0,0 +1,3 @@
|
||||
GET_PASSTHROUGH_PREFIX() {
|
||||
echo "SUBSCWRYPT=$((SUBSCWRYPT+1)) SCWRYPTS_LOG_LEVEL=$SCWRYPTS_LOG_LEVEL scwrypts"
|
||||
}
|
99
scwrypts/remote/lib/config.module.zsh
Normal file
99
scwrypts/remote/lib/config.module.zsh
Normal file
@ -0,0 +1,99 @@
|
||||
#####################################################################
|
||||
|
||||
DEPENDENCIES+=(yq)
|
||||
|
||||
#####################################################################
|
||||
|
||||
REMOTE__GET_CONNECTION_STRING() {
|
||||
local REMOTE_NAME="$1"
|
||||
[ $(REMOTE__QUERY_CONNECTION .sessions.$REMOTE_NAME.host) ] \
|
||||
|| ERROR "no such connection $REMOTE_NAME exists" \
|
||||
|| return 1
|
||||
|
||||
local CONNECTION_HOST=$(REMOTE__QUERY_CONNECTION .sessions.$REMOTE_NAME.host)
|
||||
[ $CONNECTION_HOST ] \
|
||||
|| ERROR "connection $REMOTE_NAME is misconfigured; missing 'host' field" \
|
||||
|| return 1
|
||||
|
||||
local CONNECTION_USER=$(REMOTE__QUERY_CONNECTION .sessions.$REMOTE_NAME.user)
|
||||
[ $CONNECTION_USER ] || CONNECTION_USER=$(REMOTE__QUERY_CONNECTION .default.user)
|
||||
|
||||
[ $CONNECTION_USER ] \
|
||||
&& CONNECTION_STRING="${CONNECTION_USER}@${CONNECTION_HOST}" \
|
||||
|| CONNECTION_STRING="$CONNECTION_HOST" \
|
||||
;
|
||||
|
||||
echo $CONNECTION_STRING
|
||||
}
|
||||
|
||||
REMOTE__GET_SSH_ARGS() {
|
||||
local REMOTE_NAME
|
||||
local TYPE=ssh
|
||||
local USE_TTY=true
|
||||
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
case $1 in
|
||||
-t | --type ) TYPE=$2; shift 1 ;;
|
||||
--use-tty ) USE_TTY=$2; shift 1 ;;
|
||||
|
||||
--no-tty ) USE_TTY=false ;;
|
||||
|
||||
* )
|
||||
[ $REMOTE_NAME ] && { ERROR "too many args :c"; return 1; }
|
||||
REMOTE_NAME=$1
|
||||
;;
|
||||
esac
|
||||
shift 1
|
||||
done
|
||||
|
||||
local ARGS=()
|
||||
[ $REMOTE_NAME ] || {
|
||||
echo "${ARGS[@]}"
|
||||
return 0
|
||||
}
|
||||
|
||||
local PORT=$(REMOTE__QUERY_CONNECTION .sessions.$REMOTE_NAME.port)
|
||||
|
||||
[ $PORT ] && {
|
||||
case $TYPE in
|
||||
ssh | xserver | tmux ) ARGS+=(-p $PORT) ;;
|
||||
scp ) ARGS+=(-P $PORT) ;; # not really in use, just a sample
|
||||
* )
|
||||
WARNING "
|
||||
port is specified, but I'm not sure whether to use '-p' or '-P'
|
||||
|
||||
if this command fails, try adding your --type to the appropriate
|
||||
list in '$SCWRYPTS_ROOT__remote/lib/config.module.zsh'
|
||||
"
|
||||
ARGS+=(-p $PORT)
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
ARGS+=($(REMOTE__QUERY_CONNECTION .session.$REMOTE_NAME.$TYPE.args))
|
||||
|
||||
[[ $USE_TTY =~ true ]] && ARGS+=(-t)
|
||||
|
||||
echo "${ARGS[@]}"
|
||||
}
|
||||
|
||||
#####################################################################
|
||||
|
||||
REMOTE__QUERY_CONNECTION() {
|
||||
YQ -oy -r $@ "$REMOTE_CONNECTIONS_FILE" \
|
||||
| grep -v ^null$
|
||||
}
|
||||
|
||||
REMOTE__QUERY_CONNECTION_WITH_FALLBACK() {
|
||||
while [[ $# -gt 0 ]] && [ ! $QUERY_RESULT ]
|
||||
do
|
||||
case $1 in
|
||||
.* ) QUERY_RESULT=$(REMOTE__QUERY_CONNECTION $1) ;;
|
||||
* ) QUERY_RESULT="$1" ;; # allows raw default value
|
||||
esac
|
||||
shift 1
|
||||
done
|
||||
|
||||
echo $QUERY_RESULT
|
||||
}
|
Reference in New Issue
Block a user