From 732f8b4ab795afced0c740afa0ee3c4fab3a8bcd Mon Sep 17 00:00:00 2001 From: Lukasz Bajsarowicz Date: Sat, 25 Jul 2020 17:00:27 +0200 Subject: [PATCH 1/4] VNC command support --- commands/vnc.cmd | 45 +++++++++++++++++++++++++++++++++++++++++++++ commands/vnc.help | 11 +++++++++++ 2 files changed, 56 insertions(+) create mode 100644 commands/vnc.cmd create mode 100644 commands/vnc.help diff --git a/commands/vnc.cmd b/commands/vnc.cmd new file mode 100644 index 00000000..be61f591 --- /dev/null +++ b/commands/vnc.cmd @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +[[ ! ${WARDEN_DIR} ]] && >&2 echo -e "\033[31mThis script is not intended to be run directly!\033[0m" && exit 1 + +WARDEN_ENV_PATH="$(locateEnvPath)" || exit $? +loadEnvConfig "${WARDEN_ENV_PATH}" || exit $? + +if [[ ${WARDEN_SELENIUM} -ne 1 ]] || [[ ${WARDEN_SELENIUM_DEBUG} -ne 1 ]]; then + fatal "Your environment is not configured with WARDEN_SELENIUM or WARDEN_SELENIUM_DEBUG" +fi + +WARDEN_SELENIUM_INDEX=${WARDEN_PARAMS[0]:-1} +WARDEN_SELENIUM_VNC=${WARDEN_ENV_NAME}_${WARDEN_PARAMS[1]:-selenium-chrome}_${WARDEN_SELENIUM_INDEX} + +# if ! which remmina >/dev/null; then + EXPOSE_PORT=$((5900 + WARDEN_SELENIUM_INDEX)) + + echo "Connect with your VNC client to 127.0.0.1:${EXPOSE_PORT}" + echo " Password: secret" + echo "You can also use URL: vnc://127.0.0.1:${EXPOSE_PORT}/?VncPassword=secret" + ssh -N -L localhost:${EXPOSE_PORT}:${WARDEN_SELENIUM_VNC}:5900 tunnel.warden.test +# fi + +cat > "${WARDEN_ENV_PATH}/.remmina" <&2 echo -e "\033[31mThis script is not intended to be run directly!\033[0m" && exit 1 + +WARDEN_USAGE=$(cat < Date: Mon, 27 Jul 2020 09:13:18 -0500 Subject: [PATCH 2/4] Fixed logic casing remina vs ssh forward; msg adjustments --- commands/vnc.cmd | 54 ++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/commands/vnc.cmd b/commands/vnc.cmd index be61f591..96bc2a32 100644 --- a/commands/vnc.cmd +++ b/commands/vnc.cmd @@ -5,41 +5,41 @@ WARDEN_ENV_PATH="$(locateEnvPath)" || exit $? loadEnvConfig "${WARDEN_ENV_PATH}" || exit $? if [[ ${WARDEN_SELENIUM} -ne 1 ]] || [[ ${WARDEN_SELENIUM_DEBUG} -ne 1 ]]; then - fatal "Your environment is not configured with WARDEN_SELENIUM or WARDEN_SELENIUM_DEBUG" + fatal "The project environment must have WARDEN_SELENIUM and WARDEN_SELENIUM_DEBUG enabled to use this command" fi WARDEN_SELENIUM_INDEX=${WARDEN_PARAMS[0]:-1} WARDEN_SELENIUM_VNC=${WARDEN_ENV_NAME}_${WARDEN_PARAMS[1]:-selenium-chrome}_${WARDEN_SELENIUM_INDEX} -# if ! which remmina >/dev/null; then +if ! which remmina >/dev/null; then EXPOSE_PORT=$((5900 + WARDEN_SELENIUM_INDEX)) echo "Connect with your VNC client to 127.0.0.1:${EXPOSE_PORT}" echo " Password: secret" echo "You can also use URL: vnc://127.0.0.1:${EXPOSE_PORT}/?VncPassword=secret" ssh -N -L localhost:${EXPOSE_PORT}:${WARDEN_SELENIUM_VNC}:5900 tunnel.warden.test -# fi - -cat > "${WARDEN_ENV_PATH}/.remmina" < "${WARDEN_ENV_PATH}/.remmina" <<-EOF + [remmina] + name=${WARDEN_SELENIUM_VNC} Debug + proxy= + ssh_enabled=1 + colordepth=8 + server=${WARDEN_SELENIUM_VNC} + ssh_auth=3 + quality=9 + scale=1 + ssh_username=user + password=. + disablepasswordstoring=0 + viewmode=1 + window_width=1200 + window_height=780 + ssh_server=tunnel.warden.test:2222 + protocol=VNC + EOF + + echo -e "Launching VNC session via Remmina. Password is \"\033[1msecret\"\033[0m" + remmina -c "${WARDEN_ENV_PATH}/.remmina" & +fi From 45901980415f74878819b8fd4f47ef6da224b2fd Mon Sep 17 00:00:00 2001 From: David Alger Date: Mon, 27 Jul 2020 09:40:25 -0500 Subject: [PATCH 3/4] Launch remmina in forground enabling use of ctrl+c and avoiding log output in midst of prompts --- commands/vnc.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commands/vnc.cmd b/commands/vnc.cmd index 96bc2a32..5dd2b270 100644 --- a/commands/vnc.cmd +++ b/commands/vnc.cmd @@ -41,5 +41,5 @@ else EOF echo -e "Launching VNC session via Remmina. Password is \"\033[1msecret\"\033[0m" - remmina -c "${WARDEN_ENV_PATH}/.remmina" & + remmina -c "${WARDEN_ENV_PATH}/.remmina" fi From 38a710bed902bffc6f7db6adf4a50a8281b30f16 Mon Sep 17 00:00:00 2001 From: David Alger Date: Mon, 27 Jul 2020 09:58:24 -0500 Subject: [PATCH 4/4] Updated CL for PR #116 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index effc25b4..b1128bbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ **Enhancements:** +* Added `warden vnc` command to launch VNC tunnel via SSH or (when installed) launch Remmina ([#116](https://github.com/davidalger/warden/pull/116) by @lbajsarowicz) * Updated `warden env`, `warden svc` and `warden db` to print help text when called without any parameters specified ## Version [0.7.0](https://github.com/davidalger/warden/tree/0.7.0) (2020-07-22)