[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