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

_______________________________________________
Pm-utils mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pm-utils

Reply via email to