[Pm-utils] [RFC PATCH 2/3] Split pm-functions.in out from functions.in

Victor Lowther victor.lowther at gmail.com
Wed Mar 5 19:51:31 PST 2008


pm-functions.in contains the functionality that should only be used by the
pm-utils frontends (pm-action, pm-is-supported, and pm-powersave).

functions.in contains code that is shared between the hooks and the pm-utils
frontends.

The reason behind splitting this out is to reduce namespace pollution in
the hooks.
---
 pm/functions.in        |  125 +---------------------------------------------
 pm/pm-functions.in     |  131 ++++++++++++++++++++++++++++++++++++++++++++++++
 src/pm-action.in       |    3 +-
 src/pm-is-supported.in |    2 +-
 src/pm-powersave.in    |    3 +-
 5 files changed, 136 insertions(+), 128 deletions(-)

diff --git a/pm/functions.in b/pm/functions.in
index bfa9a55..a7905ce 100644
--- a/pm/functions.in
+++ b/pm/functions.in
@@ -1,131 +1,10 @@
 #!/bin/sh
 # vim:noexpandtab
 
+# Common functionality for the hooks.
 
-# Default values go here.  It is important to _not_ initialize some
-# variables here.  They are:
-#
-# PM_CMDLINE
-# RESUME_MODULES
-#
 # for great debugging!
-[ "${PM_DEBUG}" = "true" ] && {
-	export PM_DEBUG
-	set -x
-}
-set -a
-PM_UTILS_LIBDIR="@PM-UTILS-LIBDIR@"
-PM_UTILS_ETCDIR="@PM-UTILS-SYSCONFDIR@"
-PM_UTILS_RUNDIR="/var/run/pm-utils"
-
-PATH=/sbin:/usr/sbin:/bin:/usr/bin:"${PM_UTILS_LIBDIR}"/bin
-HIBERNATE_MODE="platform"
-HIBERNATE_RESUME_POST_VIDEO=no
-INHIBIT="${PM_UTILS_RUNDIR}/inhibit"
-PM_LOGFILE="${PM_LOGFILE:=/var/log/pm-suspend.log}"
-SUSPEND_MODULES=""
-TEMPORARY_CPUFREQ_GOVERNOR="performance"
-LOCKDIR="${PM_UTILS_RUNDIR}/locks"
-STORAGEDIR="${PM_UTILS_RUNDIR}/storage"
-SLEEP_MODULE="kernel"
-NA=254
-
-# Use c sort order
-export LC_COLLATE=C
-
-[ -f "${PM_UTILS_LIBDIR}"/defaults ] && . "${PM_UTILS_LIBDIR}"/defaults
-
-set +a
-
-for cfg in "${PM_UTILS_ETCDIR}"/config.d/*[!~] ; do
-	[ -f "$cfg" ] || continue
-	set -a
-	. "${cfg}"
-	set +a
-done
-
-take_suspend_lock()
-{
-	VT=$(fgconsole)
-	chvt 63
-	try_lock "pm-utils.lock" || return 1
-	mkdir -p "${STORAGEDIR}"
-	return 0
-}
-
-remove_suspend_lock()
-{
-	rm -rf "${STORAGEDIR}"
-	chvt 1
-	chvt $VT
-	release_lock "pm-utils.lock"
-}
-
-hook_exit_status(){
-	case $1 in
-		0) echo "success." ;;
-		$NA) echo "not applicable." ;;
-		*) echo "Returned exit code $1." ;;
-	esac
-}
-
-run_hooks() {
-	# $1 = type of hook to find.  
-	# $2 = paramaters to pass to hooks.
-	# $3 = if present and equal to "reverse", run hooks backwards.
-	# Currently only power and sleep are meaningful.
-	local syshooks="${PM_UTILS_ETCDIR}/$1.d"
-	local phooks="${PM_UTILS_LIBDIR}/$1.d"
-	local sort="sort"
-	local base
-	local hook
-	local oifs="${IFS}"
-	# the next two lines are not a typo or a formatting error!
-	local nifs="
-"
-	IFS="${nifs}" # tolerate spaces in filenames.
-	[ "$3" = "reverse" ] && sort="sort -r"
-	for base in $(IFS="${oifs}"; for f in "$syshooks/"*[!~] "$phooks/"*[!~];
-		do [ -O "$f" ] && echo ${f##*/} ; done | $sort | uniq) ;
-	do
-		if [ -f "$syshooks/$base" ]; then
-			hook="$syshooks/$base"
-		elif [ -f "$phooks/$base" ]; then
-			hook="$phooks/$base"
-		fi
-		[ -x "${hook}" ] && (
-			IFS="${oifs}"
-			echo "$(date): running ${hook} $2"
-			"${hook}" $2
-			hook_exit_status $?
-		)
-	done
-	IFS="${oifs}"
-}
-
-init_logfile()
-{
-	if [ -h "$1" ]; then
-		echo "$1 is a symbolic link, refusing to overwrite."
-		return 1
-	elif [ ! -O "$1" ]; then
-		echo "We do not own $1, refusing to overwrite."
-		return 1
-	elif [ -z "$1" ]; then
-		echo "Please pass a filename to init_logfile."
-		return 1
-	fi
-	exec > "$1" 2>&1
-}
-
-
-SLEEP_FUNCTIONS="${PM_UTILS_LIBDIR}/module.d/${SLEEP_MODULE}"
-[ -f "${SLEEP_FUNCTIONS}" ] || { 
-	echo "Requested sleep module $SLEEP_MODULE not available."
-	exit 1
-}
-
-. "${SLEEP_FUNCTIONS}"
+[ "${PM_DEBUG}" = "true" ] && set -x
 
 
 # try to take the lock.  Fail if we cannot get it.
diff --git a/pm/pm-functions.in b/pm/pm-functions.in
new file mode 100644
index 0000000..88eb841
--- /dev/null
+++ b/pm/pm-functions.in
@@ -0,0 +1,131 @@
+#!/bin/sh
+# vim:noexpandtab
+
+
+# Default values go here.  It is important to _not_ initialize some
+# variables here.  They are:
+#
+# PM_CMDLINE
+# RESUME_MODULES
+#
+# for great debugging!
+[ "${PM_DEBUG}" = "true" ] && {
+	export PM_DEBUG
+	set -x
+}
+set -a
+PM_UTILS_LIBDIR="@PM-UTILS-LIBDIR@"
+PM_UTILS_ETCDIR="@PM-UTILS-SYSCONFDIR@"
+PM_UTILS_RUNDIR="/var/run/pm-utils"
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin:"${PM_UTILS_LIBDIR}"/bin
+HIBERNATE_MODE="platform"
+HIBERNATE_RESUME_POST_VIDEO=no
+INHIBIT="${PM_UTILS_RUNDIR}/inhibit"
+PM_LOGFILE="${PM_LOGFILE:=/var/log/pm-suspend.log}"
+SUSPEND_MODULES=""
+TEMPORARY_CPUFREQ_GOVERNOR="performance"
+LOCKDIR="${PM_UTILS_RUNDIR}/locks"
+STORAGEDIR="${PM_UTILS_RUNDIR}/storage"
+SLEEP_MODULE="kernel"
+NA=254
+PM_FUNCTIONS="$PM_UTILS_LIBDIR/functions"
+# Use c sort order
+export LC_COLLATE=C
+
+[ -f "${PM_UTILS_LIBDIR}"/defaults ] && . "${PM_UTILS_LIBDIR}"/defaults
+
+set +a
+
+for cfg in "${PM_UTILS_ETCDIR}"/config.d/*[!~] ; do
+	[ -f "$cfg" ] || continue
+	set -a
+	. "${cfg}"
+	set +a
+done
+
+. "${PM_FUNCTIONS}"
+
+take_suspend_lock()
+{
+	VT=$(fgconsole)
+	chvt 63
+	try_lock "pm-utils.lock" || return 1
+	mkdir -p "${STORAGEDIR}"
+	return 0
+}
+
+remove_suspend_lock()
+{
+	rm -rf "${STORAGEDIR}"
+	chvt 1
+	chvt $VT
+	release_lock "pm-utils.lock"
+}
+
+hook_exit_status(){
+	case $1 in
+		0) echo "success." ;;
+		$NA) echo "not applicable." ;;
+		*) echo "Returned exit code $1." ;;
+	esac
+}
+
+run_hooks() {
+	# $1 = type of hook to find.  
+	# $2 = paramaters to pass to hooks.
+	# $3 = if present and equal to "reverse", run hooks backwards.
+	# Currently only power and sleep are meaningful.
+	local syshooks="${PM_UTILS_ETCDIR}/$1.d"
+	local phooks="${PM_UTILS_LIBDIR}/$1.d"
+	local sort="sort"
+	local base
+	local hook
+	local oifs="${IFS}"
+	# the next two lines are not a typo or a formatting error!
+	local nifs="
+"
+	IFS="${nifs}" # tolerate spaces in filenames.
+	[ "$3" = "reverse" ] && sort="sort -r"
+	for base in $(IFS="${oifs}"; for f in "$syshooks/"*[!~] "$phooks/"*[!~];
+		do [ -O "$f" ] && echo ${f##*/} ; done | $sort | uniq) ;
+	do
+		if [ -f "$syshooks/$base" ]; then
+			hook="$syshooks/$base"
+		elif [ -f "$phooks/$base" ]; then
+			hook="$phooks/$base"
+		fi
+		[ -x "${hook}" ] && (
+			IFS="${oifs}"
+			echo "$(date): running ${hook} $2"
+			"${hook}" $2
+			hook_exit_status $?
+		)
+	done
+	IFS="${oifs}"
+}
+
+init_logfile()
+{
+	if [ -h "$1" ]; then
+		echo "$1 is a symbolic link, refusing to overwrite."
+		return 1
+	elif [ ! -O "$1" ]; then
+		echo "We do not own $1, refusing to overwrite."
+		return 1
+	elif [ -z "$1" ]; then
+		echo "Please pass a filename to init_logfile."
+		return 1
+	fi
+	exec > "$1" 2>&1
+}
+
+
+SLEEP_FUNCTIONS="${PM_UTILS_LIBDIR}/module.d/${SLEEP_MODULE}"
+[ -f "${SLEEP_FUNCTIONS}" ] || { 
+	echo "Requested sleep module $SLEEP_MODULE not available."
+	exit 1
+}
+
+. "${SLEEP_FUNCTIONS}"
+
diff --git a/src/pm-action.in b/src/pm-action.in
index e87b7f8..32525c8 100644
--- a/src/pm-action.in
+++ b/src/pm-action.in
@@ -85,8 +85,7 @@ do
 	shift
 done
 
-export PM_FUNCTIONS="@PM-UTILS-LIBDIR@/functions"
-. "${PM_FUNCTIONS}"
+. "@PM-UTILS-LIBDIR@/pm-functions"
 
 ACTION="$(echo ${0##*pm-} |tr - _)"
 
diff --git a/src/pm-is-supported.in b/src/pm-is-supported.in
index bfce1ae..9446846 100644
--- a/src/pm-is-supported.in
+++ b/src/pm-is-supported.in
@@ -16,7 +16,7 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 #
 
-. "@PM-UTILS-LIBDIR@/functions"
+. "@PM-UTILS-LIBDIR@/pm-functions"
 
 help_options()
 {
diff --git a/src/pm-powersave.in b/src/pm-powersave.in
index a1cdb4a..d0c2d5f 100644
--- a/src/pm-powersave.in
+++ b/src/pm-powersave.in
@@ -25,8 +25,7 @@
 #
 
 POWERSAVE_LOGFILE="/dev/null"
-export PM_FUNCTIONS="@PM-UTILS-LIBDIR@/functions"
-. "${PM_FUNCTIONS}"
+. "@PM-UTILS-LIBDIR@/pm-functions"
 
 if [ "$1" = "true" -o "$1" = "false" ] ; then
 	init_logfile "${POWERSAVE_LOGFILE}"
-- 
1.5.4.3



More information about the Pm-utils mailing list