diff options
author | Victor Lowther <victor.lowther@gmail.com> | 2008-03-05 15:26:47 -0600 |
---|---|---|
committer | Victor Lowther <victor.lowther@gmail.com> | 2008-03-05 15:26:47 -0600 |
commit | 9232cd18a317936de20d365b4e9178eead4c7c41 (patch) | |
tree | a1982beea1f493feac9de456118f1ae45905fdc1 /pm | |
parent | 94722ed73c79fefc3e98c6cd1c194eddeb325aeb (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.in | 125 | ||||
-rw-r--r-- | pm/pm-functions.in | 131 |
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}" + |