summaryrefslogtreecommitdiff
path: root/pm
diff options
context:
space:
mode:
authorVictor Lowther <victor.lowther@gmail.com>2008-03-05 15:26:47 -0600
committerVictor Lowther <victor.lowther@gmail.com>2008-03-05 15:26:47 -0600
commit9232cd18a317936de20d365b4e9178eead4c7c41 (patch)
treea1982beea1f493feac9de456118f1ae45905fdc1 /pm
parent94722ed73c79fefc3e98c6cd1c194eddeb325aeb (diff)
Split functions.in into functions.in and pm-functions.in
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.
Diffstat (limited to 'pm')
-rw-r--r--pm/functions.in125
-rw-r--r--pm/pm-functions.in131
2 files changed, 133 insertions, 123 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}"
+