[X2Go-Commits] [x2goserver] 03/15: x2goserver/bin/x2goresume-session: make (most) non-exported variables lowercase, rename variables to more descriptive names, use typeset all over the place and change the variable type for some variables.

git-admin at x2go.org git-admin at x2go.org
Thu Apr 15 11:15:02 CEST 2021


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goserver.

commit 5f00bd3047532ca41e6eabc03ee40678026afacf
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Wed Jan 6 21:47:55 2021 +0100

    x2goserver/bin/x2goresume-session: make (most) non-exported variables lowercase, rename variables to more descriptive names, use typeset all over the place and change the variable type for some variables.
    
    Mostly non-functional changes.
---
 debian/changelog                  |   4 +
 x2goserver/bin/x2goresume-session | 335 +++++++++++++++++++-------------------
 2 files changed, 175 insertions(+), 164 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 85d6387b..e6a7ad7f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -385,6 +385,10 @@ x2goserver (4.1.0.4-0x2go1.2) UNRELEASED; urgency=medium
     - x2goserver/bin/x2gostartagent: fetch the agent PID as early as possible.
     - x2goserver/bin/x2gooptionsstring: actually default to transformation
       mode if none was explicitly selected.
+    - x2goserver/bin/x2goresume-session: make (most) non-exported variables
+      lowercase, rename variables to more descriptive names, use typeset all
+      over the place and change the variable type for some variables. Mostly
+      non-functional changes.
   * debian/control:
     + Build-depend upon lsb-release for distro version detection.
   * debian/x2goserver.manpages:
diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session
index 491618f0..67a81741 100755
--- a/x2goserver/bin/x2goresume-session
+++ b/x2goserver/bin/x2goresume-session
@@ -19,30 +19,30 @@
 # Free Software Foundation, Inc.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
-X2GO_LIB_PATH="$(x2gopath 'libexec')"
+typeset x2go_lib_path="$(x2gopath 'libexec')"
 
 if [[ "${#}" -lt '7' ]]; then
 	typeset msg='not enough command line arguments'
 	echo "${msg}" >&2
-	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'err' "${msg}"
+	"${x2go_lib_path}/x2gosyslog" "${0}" 'err' "${msg}"
 	exit '1'
 fi
 
-SESSION_NAME="${1}"
-X2GO_GEOMETRY="${2}"
-X2GO_LINK="${3}"
-X2GO_PACK="${4}"
-#X2GO_KBD_LAYOUT="${5}"
-X2GO_KBD_TYPE="${6}"
-X2GO_SET_KBD="${7}"
-X2GO_CLIPBOARD="${8}"
-typeset X2GO_XINERAMA="${9}"
+typeset session_name="${1}"
+typeset geometry_val="${2}"
+typeset link_val="${3}"
+typeset pack_val="${4}"
+#typeset kbd_layout_val="${5}"
+typeset kbd_type_val="${6}"
+typeset set_kbd="${7}"
+typeset clipboard_val="${8}"
+typeset xinerama_val="${9}"
 
-X2GO_AGENT_PID="$("${X2GO_LIB_PATH}/x2gogetagent" "${SESSION_NAME}")"
+typeset x2go_agent_pid="$("${x2go_lib_path}/x2gogetagent" "${session_name}")"
 
-X2GO_ROOT="${HOME}/.x2go"
-X2GO_RESIZE='1'
-X2GO_FULLSCREEN='0'
+typeset x2go_root="${HOME}/.x2go"
+typeset resize_val='1'
+typeset fullscreen_val='0'
 
 # ${HOSTNAME} should be automatically set by bash via gethostname(2), IFF this
 # variable is not already set in the environment.
@@ -59,7 +59,7 @@ typeset current_host_name=''
 
 if ! current_host_name="$(hostname)"; then
 	typeset msg="Unable to retrieve machine's hostname. This is required. Aborting session startup."
-	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'err' "${msg}"
+	"${x2go_lib_path}/x2gosyslog" "${0}" 'err' "${msg}"
 
 	# Make x2goclient fail.
 	echo "${msg}" >&2
@@ -67,137 +67,140 @@ if ! current_host_name="$(hostname)"; then
 fi
 
 # refresh up ssh-agent-forwarding socket file symlink
-X2GOSSH_AUTH_SOCK="${X2GO_ROOT}/C-${SESSION_NAME}/ssh-agent.PID"
-if [[ -L "${X2GOSSH_AUTH_SOCK}" ]]; then
-	rm -f -- "${X2GOSSH_AUTH_SOCK}"
+typeset x2go_ssh_auth_sock="${x2go_root}/C-${session_name}/ssh-agent.PID"
+if [[ -L "${x2go_ssh_auth_sock}" ]]; then
+	rm -f -- "${x2go_ssh_auth_sock}"
 fi
 if [[ -S "${SSH_AUTH_SOCK}" ]]; then
-	ln -sf -- "${SSH_AUTH_SOCK}" "${X2GOSSH_AUTH_SOCK}"
+	ln -sf -- "${SSH_AUTH_SOCK}" "${x2go_ssh_auth_sock}"
 fi
 
-STATE="$("${X2GO_LIB_PATH}/x2gogetagentstate" "${SESSION_NAME}")"
+typeset state="$("${x2go_lib_path}/x2gogetagentstate" "${session_name}")"
 
 # exit if session terminated
-if [[ "${STATE}" = 'TERMINATED' ]] || [[ "${STATE}" = 'TERMINATING' ]]; then
-	typeset msg="session ${SESSION_NAME} terminated"
+if [[ "${state}" = 'TERMINATED' ]] || [[ "${state}" = 'TERMINATING' ]]; then
+	typeset msg="session ${session_name} terminated"
 	echo "${msg}" >&2
-	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'err' "${msg}"
+	"${x2go_lib_path}/x2gosyslog" "${0}" 'err' "${msg}"
 	exit '3'
 fi
 
 typeset -i i='0'
 # wait 15 sec. for starting session
-while [[ "${STATE}" = 'RESUMING' ]] || [[ "${STATE}" = 'STARTING' ]]; do
+while [[ "${state}" = 'RESUMING' ]] || [[ "${state}" = 'STARTING' ]]; do
 	sleep '1'
 	((++i))
 	#if session still not started, try to suspend it
 	if [[ "${i}" -gt '15' ]]; then
-		x2gosuspend-session "${SESSION_NAME}"
+		x2gosuspend-session "${session_name}"
 		sleep '2'
 		i='0'
 	fi
-	STATE="$("${X2GO_LIB_PATH}/x2gogetagentstate" "${SESSION_NAME}")"
+	state="$("${x2go_lib_path}/x2gogetagentstate" "${session_name}")"
 done
 
 #suspend running session
-if [[ "${STATE}" = 'RUNNING' ]]; then
-	x2gosuspend-session "${SESSION_NAME}"
+if [[ "${state}" = 'RUNNING' ]]; then
+	x2gosuspend-session "${session_name}"
 	sleep '2'
-	STATE="$("${X2GO_LIB_PATH}/x2gogetagentstate" "${SESSION_NAME}")"
+	state="$("${x2go_lib_path}/x2gogetagentstate" "${session_name}")"
 fi
 
 i='0'
 # wait 45 sec., while session suspending
-while [[ "${STATE}" = 'SUSPENDING' ]]; do
+while [[ "${state}" = 'SUSPENDING' ]]; do
 	sleep '1'
 	((++i))
 	if [[ "${i}" -gt '45' ]]; then
 		msg='it is taking too long to suspend the session-to-be-resumed; it is possible that the session is in a damaged state'
 		echo "${msg}" >&2
-		"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'err' "${msg}"
+		"${x2go_lib_path}/x2gosyslog" "${0}" 'err' "${msg}"
 		exit '4'
 	fi
-	STATE="$("${X2GO_LIB_PATH}/x2gogetagentstate" "${SESSION_NAME}")"
+	state="$("${x2go_lib_path}/x2gogetagentstate" "${session_name}")"
 done
 
-"${X2GO_LIB_PATH}/x2gormforward" "${SESSION_NAME}"
+"${x2go_lib_path}/x2gormforward" "${session_name}"
 
-"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'info' "$(basename "${0}") called with options: ${*}"
+"${x2go_lib_path}/x2gosyslog" "${0}" 'info' "$(basename "${0}") called with options: ${*}"
 
-X2GO_TELEKINESIS_ENABLED="$(perl -e 'use X2Go::Config qw( get_config ); use X2Go::Utils qw( is_true ); my $Config= get_config(); print is_true($Config->param("telekinesis.enable"));')"
+typeset telekinesis_enabled="$(perl -e 'use X2Go::Config qw( get_config ); use X2Go::Utils qw( is_true ); my $Config= get_config(); print is_true($Config->param("telekinesis.enable"));')"
 
 # rootless sessions of geometry fullscreen are invalid
-if [[ "${X2GO_GEOMETRY}" = 'fullscreen' ]] && [[ "${SESSION_TYPE}" = 'R' ]]; then
-	X2GO_GEOMETRY=''
+if [[ "${geometry_val}" = 'fullscreen' ]] && [[ "${SESSION_TYPE}" = 'R' ]]; then
+	geometry_val=''
 fi
 
 # no geometry for desktop sessions shall result in fullscreen desktop sessions
-if [[ -z "${X2GO_GEOMETRY}" ]] && [[ "${SESSION_TYPE}" = 'D' ]]; then
-	X2GO_GEOMETRY="fullscreen"
+if [[ -z "${geometry_val}" ]] && [[ "${SESSION_TYPE}" = 'D' ]]; then
+	geometry_val='fullscreen'
 fi
-if [[ "${X2GO_GEOMETRY}" = 'fullscreen' ]]; then
-	X2GO_FULLSCREEN='1'
+if [[ "${geometry_val}" = 'fullscreen' ]]; then
+	fullscreen_val='1'
 fi
 
 
-SESSIONINFO="$(x2golistsessions | grep "${SESSION_NAME}" | sed 's/|/,/g')"
+typeset session_info="$(x2golistsessions | grep "${session_name}" | sed 's/|/,/g')"
 
-GR_PORT="$(awk -F ',' '{print $9}' <<< "${SESSIONINFO}")"
-SOUND_PORT="$(awk -F ',' '{print $10}' <<< "${SESSIONINFO}")"
-FS_PORT="$(awk -F ',' '{print $14}' <<< "${SESSIONINFO}")"
-#SERVER="$(awk -F ',' '{print $4}' <<< "${SESSIONINFO}")"
+# FIXME: what is "GR" supposed to mean? General? Nobody knows and it was never
+#        documented ...
+typeset gr_port="$(awk -F ',' '{print $9}' <<< "${session_info}")"
+typeset sound_port="$(awk -F ',' '{print $10}' <<< "${session_info}")"
+typeset fs_port="$(awk -F ',' '{print $14}' <<< "${session_info}")"
+#typeset server="$(awk -F ',' '{print $4}' <<< "${session_info}")"
 
-"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug' "old ports: ${GR_PORT}, ${SOUND_PORT}, ${FS_PORT}"
+"${x2go_lib_path}/x2gosyslog" "${0}" 'debug' "old ports: ${gr_port}, ${sound_port}, ${fs_port}"
 
 typeset X2GO_INTERNAL_SOURCE='1'
 # Make shellcheck happy.
 : "${X2GO_INTERNAL_SOURCE}"
-. "${X2GO_LIB_PATH}/x2gocheckport"
+. "${x2go_lib_path}/x2gocheckport"
 unset X2GO_INTERNAL_SOURCE
 
 # define the full path to the ss utility
 typeset ss="$(PATH="${PATH}:/usr/sbin:/sbin" type -P 'ss')"
 
 #check if saved in DB ports free
-if ! check_system_port "${ss}" "${GR_PORT}"; then
-	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug' "port ${GR_PORT} is already in use"
-	"${X2GO_LIB_PATH}/x2gormport" "${current_host_name}" "${SESSION_NAME}" "${GR_PORT}"
-	GR_PORT=''
+if ! check_system_port "${ss}" "${gr_port}"; then
+	"${x2go_lib_path}/x2gosyslog" "${0}" 'debug' "'gr'(?) port ${gr_port} is already in use"
+	"${x2go_lib_path}/x2gormport" "${current_host_name}" "${session_name}" "${gr_port}"
+	gr_port=''
 fi
-if ! check_system_port "${ss}" "${SOUND_PORT}"; then
-	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug' "port ${SOUND_PORT} is already in use"
-	"${X2GO_LIB_PATH}/x2gormport" "${current_host_name}" "${SESSION_NAME}" "${SOUND_PORT}"
-	SOUND_PORT=''
+if ! check_system_port "${ss}" "${sound_port}"; then
+	"${x2go_lib_path}/x2gosyslog" "${0}" 'debug' "sound port ${sound_port} is already in use"
+	"${x2go_lib_path}/x2gormport" "${current_host_name}" "${session_name}" "${sound_port}"
+	sound_port=''
 fi
-if ! check_system_port "${ss}" "${FS_PORT}"; then
-	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug' "port ${FS_PORT} is already in use"
-	"${X2GO_LIB_PATH}/x2gormport" "${current_host_name}" "${SESSION_NAME}" "${FS_PORT}"
-	FS_PORT=''
+if ! check_system_port "${ss}" "${fs_port}"; then
+	"${x2go_lib_path}/x2gosyslog" "${0}" 'debug' "file system forwarding port ${fs_port} is already in use"
+	"${x2go_lib_path}/x2gormport" "${current_host_name}" "${session_name}" "${fs_port}"
+	fs_port=''
 fi
 
-if [[ "${X2GO_TELEKINESIS_ENABLED}" = '1' ]]; then
-	TEKICTRL_PORT="$(awk -F ',' '{print $15}' <<< "${SESSIONINFO}")"
-	TEKIDATA_PORT="$(awk -F ',' '{print $16}' <<< "${SESSIONINFO}")"
-	if ! check_system_port "${ss}" "${TEKICTRL_PORT}"; then
-		"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug' "port ${TEKICTRL_PORT} is already in use"
-		"${X2GO_LIB_PATH}/x2gormport" "${current_host_name}" "${SESSION_NAME}" "${TEKICTRL_PORT}"
-		TEKICTRL_PORT=''
+if [[ "${telekinesis_enabled}" = '1' ]]; then
+	typeset tekictrl_port="$(awk -F ',' '{print $15}' <<< "${session_info}")"
+	typeset tekidata_port="$(awk -F ',' '{print $16}' <<< "${session_info}")"
+	if ! check_system_port "${ss}" "${tekictrl_port}"; then
+		"${x2go_lib_path}/x2gosyslog" "${0}" 'debug' "port ${tekictrl_port} is already in use"
+		"${x2go_lib_path}/x2gormport" "${current_host_name}" "${session_name}" "${tekictrl_port}"
+		tekictrl_port=''
 	fi
-	if ! check_system_port "${ss}" "${TEKIDATA_PORT}"; then
-		"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'debug' "port ${TEKIDATA_PORT} is already in use"
-		"${X2GO_LIB_PATH}/x2gormport" "${current_host_name}" "${SESSION_NAME}" "${TEKIDATA_PORT}"
-		TEKIDATA_PORT=''
+	if ! check_system_port "${ss}" "${tekidata_port}"; then
+		"${x2go_lib_path}/x2gosyslog" "${0}" 'debug' "port ${tekidata_port} is already in use"
+		"${x2go_lib_path}/x2gormport" "${current_host_name}" "${session_name}" "${tekidata_port}"
+		tekidata_port=''
 	fi
 else
-	"${X2GO_LIB_PATH}/x2gormport" "${current_host_name}" "${SESSION_NAME}" "${TEKICTRL_PORT}"
-	"${X2GO_LIB_PATH}/x2gormport" "${current_host_name}" "${SESSION_NAME}" "${TEKIDATA_PORT}"
-	TEKICTRL_PORT='0'
-	TEKIDATA_PORT='0'
+	"${x2go_lib_path}/x2gormport" "${current_host_name}" "${session_name}" "${tekictrl_port}"
+	"${x2go_lib_path}/x2gormport" "${current_host_name}" "${session_name}" "${tekidata_port}"
+	tekictrl_port='0'
+	tekidata_port='0'
 fi
 
-if ! SSH_PORT="$("${X2GO_LIB_PATH}/x2gogetrandomport")"; then
+typeset -i ssh_port='0'
+if ! ssh_port="$("${x2go_lib_path}/x2gogetrandomport")"; then
 	typeset msg="Unable to get (pseudo-)randomized starting port value."
-	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'err' "${msg}"
+	"${x2go_lib_path}/x2gosyslog" "${0}" 'err' "${msg}"
 
 	# Make x2goclient fail.
 	echo "${msg}" >&2
@@ -208,62 +211,62 @@ typeset -i retry='0'
 typeset -i max_retry='10'
 typeset -i free_port='0'
 typeset output=''
-while [[ -z "${GR_PORT}" ]] || [[ -z "${SOUND_PORT}" ]] || [[ -z "${FS_PORT}" ]] || [[ -z "${TEKICTRL_PORT}" ]] || [[ -z "${TEKIDATA_PORT}" ]]; do
+while [[ -z "${gr_port}" ]] || [[ -z "${sound_port}" ]] || [[ -z "${fs_port}" ]] || [[ -z "${tekictrl_port}" ]] || [[ -z "${tekidata_port}" ]]; do
 	output=''
 	for ((retry = 0; retry < max_retry; ++retry)); do
 		free_port='0'
-		if free_port="$("${X2GO_LIB_PATH}/x2gogetfreeport" "${current_host_name}" "${ss}" 'lowlevel' "${SSH_PORT}")"; then
-			SSH_PORT="${free_port}"
+		if free_port="$("${x2go_lib_path}/x2gogetfreeport" "${current_host_name}" "${ss}" 'lowlevel' "${ssh_port}")"; then
+			ssh_port="${free_port}"
 
-			output="$("${X2GO_LIB_PATH}/x2goinsertport" "${current_host_name}" "${SESSION_NAME}" "${SSH_PORT}")"
+			output="$("${x2go_lib_path}/x2goinsertport" "${current_host_name}" "${session_name}" "${ssh_port}")"
 
 			if [[ "${output}" = 'inserted' ]]; then
 				break
 			else
-				"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'warning' "unable to insert port into database. Retrying (run $((retry + 1)))."
+				"${x2go_lib_path}/x2gosyslog" "${0}" 'warning' "unable to insert port into database. Retrying (run $((retry + 1)))."
 			fi
 		else
-			"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'warning' "no free port available, cannot start new session. Retrying (run $((retry + 1)))."
+			"${x2go_lib_path}/x2gosyslog" "${0}" 'warning' "no free port available, cannot start new session. Retrying (run $((retry + 1)))."
 		fi
 	done
 
 	if [[ "${output}" != 'inserted' ]]; then
-		typeset msg="Unable to find free port or insert new session into database; parameters: hostname (${current_host_name}), session name (${SESSION_NAME}) and port (${SSH_PORT})."
-		"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'err' "${msg}"
+		typeset msg="Unable to find free port or insert new session into database; parameters: hostname (${current_host_name}), session name (${session_name}) and port (${ssh_port})."
+		"${x2go_lib_path}/x2gosyslog" "${0}" 'err' "${msg}"
 
 		# Make x2goclient fail.
 		echo "${msg}" >&2
 		exit '6'
 	fi
 
-	if [[ -z "${GR_PORT}" ]]; then
-		GR_PORT="${SSH_PORT}"
-	elif [[ -z "${SOUND_PORT}" ]]; then
-		SOUND_PORT="${SSH_PORT}"
-	elif [[ -z "${FS_PORT}" ]]; then
-		FS_PORT="${SSH_PORT}"
-	elif [[ -z "${TEKICTRL_PORT}" ]]; then
-		TEKICTRL_PORT="${SSH_PORT}"
-	elif [[ -z "${TEKIDATA_PORT}" ]]; then
-		TEKIDATA_PORT="${SSH_PORT}"
+	if [[ -z "${gr_port}" ]]; then
+		gr_port="${ssh_port}"
+	elif [[ -z "${sound_port}" ]]; then
+		sound_port="${ssh_port}"
+	elif [[ -z "${fs_port}" ]]; then
+		fs_port="${ssh_port}"
+	elif [[ -z "${tekictrl_port}" ]]; then
+		tekictrl_port="${ssh_port}"
+	elif [[ -z "${tekidata_port}" ]]; then
+		tekidata_port="${ssh_port}"
 	fi
 done
 
 
-SESSION_DIR="${X2GO_ROOT}/C-${SESSION_NAME}"
-OPTIONS="$(< "${SESSION_DIR}/options")"
+typeset session_dir="${x2go_root}/C-${session_name}"
+typeset agent_options="$(< "${session_dir}/options")"
 
-LSTR="$(awk -F ',' '{print $2}' <<< "${OPTIONS}")"
-PSTR="$(awk -F ',' '{print $3}' <<< "${OPTIONS}")"
-KTSTR="$(awk -F ',' '{print $12}' <<< "${OPTIONS}")"
-GSTR="$(awk -F ',' '{print $13}' <<< "${OPTIONS}")"
+typeset orig_link_opt="$(awk -F ',' '{print $2}' <<< "${agent_options}")"
+typeset orig_pack_opt="$(awk -F ',' '{print $3}' <<< "${agent_options}")"
+typeset orig_kbd_type_opt="$(awk -F ',' '{print $12}' <<< "${agent_options}")"
+typeset orig_geometry_opt="$(awk -F ',' '{print $13}' <<< "${agent_options}")"
 typeset xinerama_orig=''
-test_GSTR="$(sed -e 's/geometry=.*//' <<< "${GSTR}")"
-if [[ -n "${test_GSTR}" ]]; then
-	GSTR='geometry='
-	xinerama_orig="$(awk -F ',' '{print $13}' <<< "${OPTIONS}")"
+typeset test_orig_geometry_opt="$(sed -e 's/geometry=.*//' <<< "${orig_geometry_opt}")"
+if [[ -n "${test_orig_geometry_opt}" ]]; then
+	orig_geometry_opt='geometry='
+	xinerama_orig="$(awk -F ',' '{print $13}' <<< "${agent_options}")"
 else
-	xinerama_orig="$(awk -F ',' '{print $14}' <<< "${OPTIONS}")"
+	xinerama_orig="$(awk -F ',' '{print $14}' <<< "${agent_options}")"
 fi
 
 # Sessions started with older X2Go Server versions do not feature
@@ -279,104 +282,108 @@ fi
 
 # Only one component missing => either geometry or xinerama at position 13,
 # everything else starts from position 14.
-if { [[ -n "${test_GSTR}" ]] && [[ -z "${test_xinerama}" ]]; } || { [[ -z "${test_GSTR}" ]] && [[ -n "${test_xinerama}" ]]; }; then
-	RSTR="$(awk -F ',' '{print $14}' <<< "${OPTIONS}")"
-	FSTR="$(awk -F ',' '{print $15}' <<< "${OPTIONS}")"
-	LISTSTR="$(awk -F ',' '{print $17}' <<< "${OPTIONS}")"
-	CLIPBOARD="$(awk -F ',' '{print $18}' <<< "${OPTIONS}")"
+typeset orig_resize_opt=''
+typeset orig_fullscreen_opt=''
+typeset orig_listen_opt=''
+typeset orig_clipboard_opt=''
+if { [[ -n "${test_orig_geometry_opt}" ]] && [[ -z "${test_xinerama}" ]]; } || { [[ -z "${test_orig_geometry_opt}" ]] && [[ -n "${test_xinerama}" ]]; }; then
+	orig_resize_opt="$(awk -F ',' '{print $14}' <<< "${agent_options}")"
+	orig_fullscreen_opt="$(awk -F ',' '{print $15}' <<< "${agent_options}")"
+	orig_listen_opt="$(awk -F ',' '{print $17}' <<< "${agent_options}")"
+	orig_clipboard_opt="$(awk -F ',' '{print $18}' <<< "${agent_options}")"
 # Neither geometry nor xinerama given, everything else starts at position 13.
-elif [[ -n "${test_GSTR}" ]]; then
-	RSTR="$(awk -F ',' '{print $13}' <<< "${OPTIONS}")"
-	FSTR="$(awk -F ',' '{print $14}' <<< "${OPTIONS}")"
-	LISTSTR="$(awk -F ',' '{print $16}' <<< "${OPTIONS}")"
-	CLIPBOARD="$(awk -F ',' '{print $17}' <<< "${OPTIONS}")"
+elif [[ -n "${test_orig_geometry_opt}" ]]; then
+	orig_resize_opt="$(awk -F ',' '{print $13}' <<< "${agent_options}")"
+	orig_fullscreen_opt="$(awk -F ',' '{print $14}' <<< "${agent_options}")"
+	orig_listen_opt="$(awk -F ',' '{print $16}' <<< "${agent_options}")"
+	orig_clipboard_opt="$(awk -F ',' '{print $17}' <<< "${agent_options}")"
 # Both geometry and xinerama given, everything else starts at position 15.
 else
-	RSTR="$(awk -F ',' '{print $15}' <<< "${OPTIONS}")"
-	FSTR="$(awk -F ',' '{print $16}' <<< "${OPTIONS}")"
-	LISTSTR="$(awk -F ',' '{print $18}' <<< "${OPTIONS}")"
-	CLIPBOARD="$(awk -F ',' '{print $19}' <<< "${OPTIONS}")"
+	orig_resize_opt="$(awk -F ',' '{print $15}' <<< "${agent_options}")"
+	orig_fullscreen_opt="$(awk -F ',' '{print $16}' <<< "${agent_options}")"
+	orig_listen_opt="$(awk -F ',' '{print $18}' <<< "${agent_options}")"
+	orig_clipboard_opt="$(awk -F ',' '{print $19}' <<< "${agent_options}")"
 fi
 
-KTSTR="$(sed -e 's#/#\\/#' <<< "${KTSTR}")"
-X2GO_KBD_TYPE="$(sed -e 's#/#\\/#' <<< "${X2GO_KBD_TYPE}")"
+orig_kbd_type_opt="$(sed -e 's#/#\\/#' <<< "${orig_kbd_type_opt}")"
+kbd_type_val="$(sed -e 's#/#\\/#' <<< "${kbd_type_val}")"
 
-if [[ "${X2GO_SET_KBD}" = '0' ]] || [[ "${X2GO_KBD_TYPE}" = 'auto' ]]; then
+if [[ "${set_kbd}" = '0' ]] || [[ "${kbd_type_val}" = 'auto' ]]; then
 	keyboard_type='null\/null'
 else
-	keyboard_type="${X2GO_KBD_TYPE}"
+	keyboard_type="${kbd_type_val}"
 fi
 
 typeset tmp_regex='^(0|none|client|server|both|1)$'
-if [[ -n "${X2GO_CLIPBOARD}" ]] && [[ "${X2GO_CLIPBOARD}" =~ ${tmp_regex} ]]; then
-	clipboard="clipboard=${X2GO_CLIPBOARD}"
+if [[ -n "${clipboard_val}" ]] && [[ "${clipboard_val}" =~ ${tmp_regex} ]]; then
+	clipboard="clipboard=${clipboard_val}"
 else
 	clipboard='clipboard=both'
 fi
 
-typeset xinerama_option="$("${X2GO_LIB_PATH}/x2goistrue" "${X2GO_XINERAMA}")"
+typeset xinerama_option="$("${x2go_lib_path}/x2goistrue" "${xinerama_val}")"
 
-NEWOPTIONS="$(sed -e "s/${LSTR}/link=${X2GO_LINK}/" \
-                  -e "s/${PSTR}/pack=${X2GO_PACK}/" \
-                  -e "s/${KTSTR}/kbtype=${keyboard_type}/" \
-                  -e "s/${GSTR}/geometry=${X2GO_GEOMETRY}/" \
+typeset agent_options_new="$(sed -e "s/${orig_link_opt}/link=${link_val}/" \
+                  -e "s/${orig_pack_opt}/pack=${pack_val}/" \
+                  -e "s/${orig_kbd_type_opt}/kbtype=${keyboard_type}/" \
+                  -e "s/${orig_geometry_opt}/geometry=${geometry_val}/" \
                   -e "s/${xinerama_orig}/xinerama=${xinerama_option}/" \
-                  -e "s/${RSTR}/resize=${X2GO_RESIZE}/" \
-                  -e "s/${LISTSTR}/listen=${GR_PORT}/" \
-                  -e "s/${FSTR}/fullscreen=${X2GO_FULLSCREEN}/" \
-                  -e "s/${CLIPBOARD}/${clipboard}/" <<< "${OPTIONS}")"
+                  -e "s/${orig_resize_opt}/resize=${resize_val}/" \
+                  -e "s/${orig_fullscreen_opt}/fullscreen=${fullscreen_val}/" \
+                  -e "s/${orig_listen_opt}/listen=${gr_port}/" \
+                  -e "s/${orig_clipboard_opt}/${clipboard}/" <<< "${agent_options}")"
 
-if [[ -z "${X2GO_GEOMETRY}" ]] || [[ "${X2GO_GEOMETRY}" = 'fullscreen' ]]; then
-	NEWOPTIONS="$(sed -e "s/geometry=${X2GO_GEOMETRY},//" <<< "${NEWOPTIONS}")"
+if [[ -z "${geometry_val}" ]] || [[ "${geometry_val}" = 'fullscreen' ]]; then
+	agent_options_new="$(sed -e "s/geometry=${geometry_val},//" <<< "${agent_options_new}")"
 fi
 
-X2GO_CLIENT="$(awk '{print $1}' <<< "${SSH_CLIENT}")"
-if [[ -z "${X2GO_CLIENT}" ]]; then
-	X2GO_CLIENT="${current_host_name}"
+typeset x2go_client="$(awk '{print $1}' <<< "${SSH_CLIENT}")"
+if [[ -z "${x2go_client}" ]]; then
+	x2go_client="${current_host_name}"
 fi
 
-echo "${NEWOPTIONS}" >"${SESSION_DIR}/options"
+echo "${agent_options_new}" >"${session_dir}/options"
 
 # run x2goserver-extensions for pre-resume
-x2gofeature 'X2GO_RUN_EXTENSIONS' &>'/dev/null' && x2goserver-run-extensions "${SESSION_NAME}" 'pre-resume' || true
+x2gofeature 'X2GO_RUN_EXTENSIONS' &>'/dev/null' && x2goserver-run-extensions "${session_name}" 'pre-resume' || true
 
 # clear old keyboard file
-rm -Rf "${SESSION_DIR}/keyboard"
+rm -Rf "${session_dir}/keyboard"
 
-if kill -HUP "${X2GO_AGENT_PID}" &>'/dev/null'; then
-	"${X2GO_LIB_PATH}/x2goresume" "${X2GO_CLIENT}" "${SESSION_NAME}" "${GR_PORT}" "${SOUND_PORT}" "${FS_PORT}" >'/dev/null'
-	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'notice' "client ${X2GO_CLIENT} has successfully resumed session with ID ${SESSION_NAME}"
+if kill -HUP "${x2go_agent_pid}" &>'/dev/null'; then
+	"${x2go_lib_path}/x2goresume" "${x2go_client}" "${session_name}" "${gr_port}" "${sound_port}" "${fs_port}" >'/dev/null'
+	"${x2go_lib_path}/x2gosyslog" "${0}" 'notice' "client ${x2go_client} has successfully resumed session with ID ${session_name}"
 
 	# set client-side keyboard model, type, variant, etc.
-	if [[ "${X2GO_SET_KBD}" != '0' ]] && [[ "${X2GO_KBD_TYPE}" = 'auto' ]]; then
-		X2GO_DISPLAY="$(cut -d '-' -f '2' <<< "${SESSION_NAME}")"
-		export DISPLAY=":${X2GO_DISPLAY}.0"
-		x2gosetkeyboard "${SESSION_NAME}" &>'/dev/null' &
+	if [[ "${set_kbd}" != '0' ]] && [[ "${kbd_type_val}" = 'auto' ]]; then
+		typeset x2go_display="$(cut -d '-' -f '2' <<< "${session_name}")"
+		export DISPLAY=":${x2go_display}.0"
+		x2gosetkeyboard "${session_name}" &>'/dev/null' &
 	fi
 
 	# resume x2godesktopsharing, if it has been in use before the session got suspended
-	x2gofeature 'X2GO_DESKTOPSHARING' &>'/dev/null' && x2goresume-desktopsharing "${SESSION_NAME}" || true
+	x2gofeature 'X2GO_DESKTOPSHARING' &>'/dev/null' && x2goresume-desktopsharing "${session_name}" || true
 
 	# run x2goserver-extensions for post-resume
-	x2gofeature 'X2GO_RUN_EXTENSIONS' &>'/dev/null' && x2goserver-run-extensions "${SESSION_NAME}" 'post-resume' || true
-	grep 'PPid' "/proc/${PPID}/status" >"${X2GO_ROOT}/C-${SESSION_NAME}/sshd.pid"
+	x2gofeature 'X2GO_RUN_EXTENSIONS' &>'/dev/null' && x2goserver-run-extensions "${session_name}" 'post-resume' || true
+	grep 'PPid' "/proc/${PPID}/status" >"${x2go_root}/C-${session_name}/sshd.pid"
 else
-	err_msg="ERROR: failed to resume session with ID ${SESSION_NAME}"
+	err_msg="ERROR: failed to resume session with ID ${session_name}"
 	echo "${err_msg}" 1>&2
-	"${X2GO_LIB_PATH}/x2gosyslog" "${0}" 'err' "${err_msg}"
+	"${x2go_lib_path}/x2gosyslog" "${0}" 'err' "${err_msg}"
 
 	# If we reach here it means that the x2goagent process of the session has vanished
 	# If this happens than we mark the session as finished...
-	"${X2GO_LIB_PATH}/x2gochangestatus" 'F' "${SESSION_NAME}" >'/dev/null'
+	"${x2go_lib_path}/x2gochangestatus" 'F' "${session_name}" >'/dev/null'
 
 	# run x2goserver-extensions for fail-resume
-	x2gofeature 'X2GO_RUN_EXTENSIONS' &>'/dev/null' && x2goserver-run-extensions "${SESSION_NAME}" 'fail-resume' || true
+	x2gofeature 'X2GO_RUN_EXTENSIONS' &>'/dev/null' && x2goserver-run-extensions "${session_name}" 'fail-resume' || true
 fi
 
-echo "gr_port=${GR_PORT}"
-echo "sound_port=${SOUND_PORT}"
-echo "fs_port=${FS_PORT}"
-if [[ "${X2GO_TELEKINESIS_ENABLED}" = '1' ]]; then
-	echo "tekictrl_port=${TEKICTRL_PORT}"
-	echo "tekidata_port=${TEKIDATA_PORT}"
+echo "gr_port=${gr_port}"
+echo "sound_port=${sound_port}"
+echo "fs_port=${fs_port}"
+if [[ "${telekinesis_enabled}" = '1' ]]; then
+	echo "tekictrl_port=${tekictrl_port}"
+	echo "tekidata_port=${tekidata_port}"
 fi

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goserver.git


More information about the x2go-commits mailing list