[X2Go-Commits] [x2goserver] 43/50: xsettings: split up common functionality (variables, functions) into extensions/base/x2goserver-xsettings-common.sh and reference this file in hooks.

git-admin at x2go.org git-admin at x2go.org
Mon Mar 16 06:29:32 CET 2015


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

x2go pushed a commit to branch feature/x2goserver-xsettings
in repository x2goserver.

commit 6721346ab51fbf38e3c3edc4476e3c07990f742d
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Mon Nov 24 23:12:07 2014 +0100

    xsettings: split up common functionality (variables, functions) into extensions/base/x2goserver-xsettings-common.sh and reference this file in hooks.
---
 .../x2goserver-xsettings-common.sh}                |   13 +--
 .../post-resume.d/900_xsettings-xsettingsd-refresh |   19 +---
 .../post-start.d/900_xsettings-xsettingsd-startup  |  114 +-------------------
 .../000_xsettings-xsettingsd-shutdown              |    4 +-
 4 files changed, 8 insertions(+), 142 deletions(-)

diff --git a/x2goserver-xsettings/lib/x2go/extensions/post-start.d/900_xsettings-xsettingsd-startup b/x2goserver-xsettings/lib/x2go/extensions/base/x2goserver-xsettings-common.sh
similarity index 89%
copy from x2goserver-xsettings/lib/x2go/extensions/post-start.d/900_xsettings-xsettingsd-startup
copy to x2goserver-xsettings/lib/x2go/extensions/base/x2goserver-xsettings-common.sh
index eb8885a..a65102d 100644
--- a/x2goserver-xsettings/lib/x2go/extensions/post-start.d/900_xsettings-xsettingsd-startup
+++ b/x2goserver-xsettings/lib/x2go/extensions/base/x2goserver-xsettings-common.sh
@@ -115,20 +115,13 @@ merge() {
   done < "${BASE_FILE}"
 }
 
-export X2GO_SESSION="${1}"
-
-X2GO_SESSIONINFO="$(x2golistsessions | grep "${X2GO_SESSION}")"
-X2GO_SESSION_DIR="${HOME}/.x2go/C-${X2GO_SESSION}/"
-X2GO_CONF_DIR="$(x2gopath etc)"
-XSETTINGSD_PID="${X2GO_SESSION_DIR}/xsettingsd.pid"
+SETTINGSD_PID="${X2GO_SESSION_DIR}/xsettingsd.pid"
 XSETTINGSD_LOG="${X2GO_SESSION_DIR}/xsettingsd.log"
 XSETTINGSD_REMOTE_CONF="${X2GO_SESSION_DIR}/xsettings-remote"
 XSETTINGSD_DEFAULT_CONF="${X2GO_CONF_DIR}/xsettings"
 XSETTINGSD_OVERRIDES_CONF="${HOME}/.xsettings-x2go"
 XSETTINGSD_CONF="${X2GO_CONF_DIR}/xsettings"
 
-export DISPLAY=":$(echo "${X2GO_SESSIONINFO}" | cut -d "|" -f3 | sed -e "s/[^0-9\-]//g")"
-
 XSETTINGSD_BASE_CONF="${XSETTINGSD_DEFAULT_CONF}"
 [ -r "${XSETTINGSD_REMOTE_CONF}" ] && XSETTINGSD_BASE_CONF="${XSETTINGSD_REMOTE_CONF}"
 
@@ -139,7 +132,3 @@ if [ ! -f "${XSETTINGSD_OVERRIDES_CONF}" ]; then
    echo "# You may edit this file to fit your needs."
    echo "# All settings in here will override remote machine or global settings.") > "${XSETTINGSD_OVERRIDES_CONF}"
 fi
-
-merge "${XSETTINGSD_BASE_CONF}" "${XSETTINGSD_OVERRIDES_CONF}" "${XSETTINGSD_CONF}" "${X2GO_SESSION_DIR}"
-
-nohup xsettingsd -c "${XSETTINGSD_CONF}" >"${XSETTINGSD_LOG}" 2>&1 & echo "${!}" > "${XSETTINGSD_PID}"
diff --git a/x2goserver-xsettings/lib/x2go/extensions/post-resume.d/900_xsettings-xsettingsd-refresh b/x2goserver-xsettings/lib/x2go/extensions/post-resume.d/900_xsettings-xsettingsd-refresh
index 9748f23..e94997e 100644
--- a/x2goserver-xsettings/lib/x2go/extensions/post-resume.d/900_xsettings-xsettingsd-refresh
+++ b/x2goserver-xsettings/lib/x2go/extensions/post-resume.d/900_xsettings-xsettingsd-refresh
@@ -19,32 +19,17 @@
 #
 # Copyright (C) 2014 Mihai Moldovan <ionic at ionic.de>
 
-. SOMEPLACE/x2goserver-xsettings-common.sh
+X2GO_EXTENSIONS_BASE="$(x2gopath libexec)/extensions/base/"
+. ${X2GO_EXTENSIONS_BASE}/x2goserver-xsettings-common.sh
 
 export X2GO_SESSION="${1}"
 
 X2GO_SESSIONINFO="$(x2golistsessions | grep "${X2GO_SESSION}")"
 X2GO_SESSION_DIR="${HOME}/.x2go/C-${X2GO_SESSION}/"
 X2GO_CONF_DIR="$(x2gopath etc)"
-XSETTINGSD_PID="${X2GO_SESSION_DIR}/xsettingsd.pid"
-XSETTINGSD_REMOTE_CONF="${X2GO_SESSION_DIR}/xsettings-remote"
-XSETTINGSD_DEFAULT_CONF="${X2GO_CONF_DIR}/xsettings"
-XSETTINGSD_OVERRIDES_CONF="${HOME}/.xsettings-x2go"
-XSETTINGSD_CONF="${X2GO_CONF_DIR}/xsettings"
 
 export DISPLAY=":$(echo "${X2GO_SESSIONINFO}" | cut -d "|" -f3 | sed -e "s/[^0-9\-]//g")"
 
-XSETTINGSD_BASE_CONF="${XSETTINGSD_DEFAULT_CONF}"
-[ -r "${XSETTINGSD_REMOTE_CONF}" ] && XSETTINGSD_BASE_CONF="${XSETTINGSD_REMOTE_CONF}"
-
-# Create a missing XSETTINGSD_OVERRIDES_CONF, if necessary.
-if [ ! -f "${XSETTINGSD_OVERRIDES_CONF}" ]; then
-  (echo "# xsettings overrides file for X2Go."
-   echo "# Created on $(date "+%Y-%m-%d %T")."
-   echo "# You may edit this file to fit your needs."
-   echo "# All settings in here will override remote machine or global settings.") > "${XSETTINGSD_OVERRIDES_CONF}"
-fi
-
 merge "${XSETTINGSD_BASE_CONF}" "${XSETTINGSD_OVERRIDES_CONF}" "${XSETTINGSD_CONF}" "${X2GO_SESSION_DIR}"
 
 kill -s HUP "${XSETTINGSD_PID}"
diff --git a/x2goserver-xsettings/lib/x2go/extensions/post-start.d/900_xsettings-xsettingsd-startup b/x2goserver-xsettings/lib/x2go/extensions/post-start.d/900_xsettings-xsettingsd-startup
index eb8885a..b62d26b 100644
--- a/x2goserver-xsettings/lib/x2go/extensions/post-start.d/900_xsettings-xsettingsd-startup
+++ b/x2goserver-xsettings/lib/x2go/extensions/post-start.d/900_xsettings-xsettingsd-startup
@@ -19,127 +19,17 @@
 #
 # Copyright (C) 2014 Mihai Moldovan <ionic at ionic.de>
 
-# Removes redundant white space and comments.
-# Note that in-line comments are supported.
-# Comments start with a hash and everything succeeding, as well as the hash character
-#  itself will be removed.
-sanitize_line() {
-  INPUT="${1}"
-
-  [ -z "${INPUT}" ] && echo ""
-
-  echo "${INPUT}" | sed -e 's/^[[:blank:]]*//' -e 's/#.*//'
-}
-
-# Returns the key.
-# Is supposed to be used on sanitized input lines only.
-extract_key() {
-  INPUT="${1}"
-
-  [ -z "${INPUT}" ] && echo ""
-
-  echo "${INPUT}" | sed -e 's/^\([^[:blank]]*\)[[:blank:]].*$/\1/'
-}
-
-# Returns the value.
-# Is supposed to be used on sanitized input lines only.
-extract_value() {
-  INPUT="${1}"
-
-  [ -z "${INPUT}" ] && echo ""
-
-  echo "${INPUT}" | sed -e 's/^[^[:blank]]*[[:blank:]][[:blank]]*\([^[:blank:]]*\).*$/\1/'
-}
-
-# Merge a base file with a overrides file and write the result to an out file.
-# For keys which are both in the base and overrides file, the overrides file
-#   takes precedence.
-# Keys only specified in one of the files will be copied to the out file.
-# Both the base and overrides files MUST exist and be readable.
-# The out file MAY exist. The base directory of this file MUST be writeable.
-#   If the out file does not exist, it will be created.
-merge() {
-  BASE_FILE="${1}"
-  OVERRIDES_FILE="${2}"
-  OUT_FILE="${3}"
-  SESSION_DIR="${4}"
-
-  # Sanitizing input parameters.
-  # Yes, you CAN specify /dev/null for OVERRIDES_FILE or BASE_FILE.
-  [ -z "${OVERRIDES_FILE}" -o ! -r "${OVERRIDES_FILE}" ] && return 1
-  [ -z "${BASE_FILE}" -o ! -r "${BASE_FILE}" ] && return 1
-  [ -z "${OUT_FILE}" ] && return 1
-  if [ ! -f "${OUT_FILE}" ]; then
-    touch "${OUT_FILE}" || return 1
-  elif [ ! -w "${OUT_FILE}" ]; then
-    return 1
-  fi
-  [ -z "${SESSION_DIR}" ] && return 1
-
-  TMP_KEY="${SESSION_DIR}/xsettings-merge.k"
-  TMP_KEYVALUE="${SESSION_DIR}/xsettings-merge.kv"
-
-  touch "${TMP_KEY}" || return 1
-
-  # All checks passed. We have readable input files and a writeable output file.
-  # Go for launch.
-  while read line; do
-    parsed_line="$(sanitize_line "${line}")"
-    [ -z "${parsed_line}" ] && continue
-
-    key="$(extract_key "${parsed_line}")"
-    value="$(extract_value "${parsed_line}")"
-    [ -z "${key}" ] && continue
-    [ -z "${value}" ] && continue
-
-    echo "${key}" >> "${TMP_KEY}"
-    echo "${key} ${value}" >> "${OUT_FILE}"
-  done < "${OVERRIDES_FILE}"
-
-  # Code duplication, but this part is actually specialized.
-  while read line; do
-    parsed_line="$(sanitize_line "${line}")"
-    [ -z "${parsed_line}" ] && continue
-
-    key="$(extract_key "${parsed_line}")"
-    value="$(extract_value "${parsed_line}")"
-    [ -z "${key}" ] && continue
-    [ -z "${value}" ] && continue
-
-    # Filter out keys already defined in the parsed overrides file.
-    while read overrides_key; do
-      [ -n "${overrides_key}" ] && [ "${key}" = "${overrides_key}" ] && continue 2
-    done < "${TMP_KEY}"
-
-    echo "${key} ${value}" >> "${OUT_FILE}"
-  done < "${BASE_FILE}"
-}
+X2GO_EXTENSIONS_BASE="$(x2gopath libexec)/extensions/base/"
+. ${X2GO_EXTENSIONS_BASE}/x2goserver-xsettings-common.sh
 
 export X2GO_SESSION="${1}"
 
 X2GO_SESSIONINFO="$(x2golistsessions | grep "${X2GO_SESSION}")"
 X2GO_SESSION_DIR="${HOME}/.x2go/C-${X2GO_SESSION}/"
 X2GO_CONF_DIR="$(x2gopath etc)"
-XSETTINGSD_PID="${X2GO_SESSION_DIR}/xsettingsd.pid"
-XSETTINGSD_LOG="${X2GO_SESSION_DIR}/xsettingsd.log"
-XSETTINGSD_REMOTE_CONF="${X2GO_SESSION_DIR}/xsettings-remote"
-XSETTINGSD_DEFAULT_CONF="${X2GO_CONF_DIR}/xsettings"
-XSETTINGSD_OVERRIDES_CONF="${HOME}/.xsettings-x2go"
-XSETTINGSD_CONF="${X2GO_CONF_DIR}/xsettings"
 
 export DISPLAY=":$(echo "${X2GO_SESSIONINFO}" | cut -d "|" -f3 | sed -e "s/[^0-9\-]//g")"
 
-XSETTINGSD_BASE_CONF="${XSETTINGSD_DEFAULT_CONF}"
-[ -r "${XSETTINGSD_REMOTE_CONF}" ] && XSETTINGSD_BASE_CONF="${XSETTINGSD_REMOTE_CONF}"
-
-# Create a missing XSETTINGSD_OVERRIDES_CONF, if necessary.
-if [ ! -f "${XSETTINGSD_OVERRIDES_CONF}" ]; then
-  (echo "# xsettings overrides file for X2Go."
-   echo "# Created on $(date "+%Y-%m-%d %T")."
-   echo "# You may edit this file to fit your needs."
-   echo "# All settings in here will override remote machine or global settings.") > "${XSETTINGSD_OVERRIDES_CONF}"
-fi
-
 merge "${XSETTINGSD_BASE_CONF}" "${XSETTINGSD_OVERRIDES_CONF}" "${XSETTINGSD_CONF}" "${X2GO_SESSION_DIR}"
 
 nohup xsettingsd -c "${XSETTINGSD_CONF}" >"${XSETTINGSD_LOG}" 2>&1 & echo "${!}" > "${XSETTINGSD_PID}"
diff --git a/x2goserver-xsettings/lib/x2go/extensions/pre-terminate.d/000_xsettings-xsettingsd-shutdown b/x2goserver-xsettings/lib/x2go/extensions/pre-terminate.d/000_xsettings-xsettingsd-shutdown
index fde8fe6..8789ae1 100644
--- a/x2goserver-xsettings/lib/x2go/extensions/pre-terminate.d/000_xsettings-xsettingsd-shutdown
+++ b/x2goserver-xsettings/lib/x2go/extensions/pre-terminate.d/000_xsettings-xsettingsd-shutdown
@@ -19,10 +19,12 @@
 #
 # Copyright (C) 2014 Mihai Moldovan <ionic at ionic.de>
 
+X2GO_EXTENSIONS_BASE="$(x2gopath libexec)/extensions/base/"
+. ${X2GO_EXTENSIONS_BASE}/x2goserver-xsettings-common.sh
+
 export X2GO_SESSION="${1}"
 
 X2GO_SESSIONINFO="$(x2golistsessions | grep "${X2GO_SESSION}")"
 X2GO_SESSION_DIR="${HOME}/.x2go/C-${X2GO_SESSION}/"
-XSETTINGSD_PID="${X2GO_SESSION_DIR}/xsettingsd.pid"
 
 kill "$(cat "${XSETTINGSD_PID}")"

--
Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git


More information about the x2go-commits mailing list