diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2014-08-08 21:32:03 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2014-08-08 21:32:03 -0300 |
commit | f3a248f94349cd3816286f0bb7b60fd971608cdf (patch) | |
tree | 8134bf3e7c941d73906856738d2d5181f803a274 /files/99_smartmonster_sleep.d.sh | |
parent | 7046434831b74f5edbc11eef091d0adc85ac5cb9 (diff) | |
download | smartmonster-f3a248f94349cd3816286f0bb7b60fd971608cdf.tar.gz smartmonster-f3a248f94349cd3816286f0bb7b60fd971608cdf.tar.bz2 |
Make it a puppet module
Diffstat (limited to 'files/99_smartmonster_sleep.d.sh')
-rwxr-xr-x | files/99_smartmonster_sleep.d.sh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/files/99_smartmonster_sleep.d.sh b/files/99_smartmonster_sleep.d.sh new file mode 100755 index 0000000..2977bdb --- /dev/null +++ b/files/99_smartmonster_sleep.d.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# +# smartmonster_sleep.d.sh - hook sleep, hibernate and shutdown events +# +# + +if [ "$USER" != "root" ]; +then + echo "You must be root!"; + exit 1; +fi + +STATE_DIR="/var/lib/smartmonster"; +HOOK_DIR="/etc/pm/sleep.d/"; +HIBERNATE_DATE_STAMP="$STATE_DIR/hibernate.stamp"; +SUSPEND_DATE_STAMP="$STATE_DIR/suspend.stamp"; +THAW_DATE_STAMP="$STATE_DIR/thaw.stamp"; +RESUME_DATE_STAMP="$STATE_DIR/resume.stamp"; +UNHANDLED_STAMP="$STATE_DIR/unhandled.stamp"; + +# XXX: Hello TOCTOU! +if [ ! -d "$STATE_DIR" ]; +then + echo "You have no $STATE_DIR; creating it!"; + mkdir -p $STATE_DIR; + + if [ $? != 0 ]; + then + echo "Unable to create $STATE_DIR!"; + exit 1; + fi + +fi + +# Load the common power related functions +. /usr/lib/pm-utils/functions + +case "$1" in + hibernate) + update_power_counter.sh; + date -R > $HIBERNATE_DATE_STAMP; + ;; + suspend) + update_power_counter.sh; + date -R > $SUSPEND_DATE_STAMP; + ;; + thaw) + date -R > $THAW_DATE_STAMP; + ;; + resume) + update_power_counter.sh; + date -R > $RESUME_DATE_STAMP; + ;; + + *) + echo "Unhandled case: $1" > $UNHANDLED_STAMP; + ;; +esac + +exit $? |