76 lines
1.3 KiB
Bash
76 lines
1.3 KiB
Bash
#!/bin/sh
|
|
|
|
PREREQ=""
|
|
|
|
prereqs()
|
|
{
|
|
echo "$PREREQ"
|
|
}
|
|
|
|
case $1 in
|
|
# get pre-requisites
|
|
prereqs)
|
|
prereqs
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
. ./scripts/functions
|
|
|
|
if [ -z "${resume}" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
case $resume in
|
|
LABEL=*)
|
|
resume="${resume#LABEL=}"
|
|
|
|
# support any / in LABEL= path (escape to \x2f)
|
|
case "${resume}" in
|
|
*[/]*)
|
|
if [ -x "$(command -v sed)" ]; then
|
|
resume="$(echo ${resume} | sed 's,/,\\x2f,g')"
|
|
else
|
|
if [ "${resume}" != "${resume#/}" ]; then
|
|
resume="\x2f${resume#/}"
|
|
fi
|
|
if [ "${resume}" != "${resume%/}" ]; then
|
|
resume="${resume%/}\x2f"
|
|
fi
|
|
IFS='/'
|
|
newresume=
|
|
for s in $resume; do
|
|
if [ -z "${newresume}" ]; then
|
|
newresume="${s}"
|
|
else
|
|
newresume="${newresume}\\x2f${s}"
|
|
fi
|
|
done
|
|
unset IFS
|
|
resume="${newresume}"
|
|
fi
|
|
esac
|
|
resume="/dev/disk/by-label/${resume}"
|
|
;;
|
|
UUID=*)
|
|
resume="/dev/disk/by-uuid/${resume#UUID=}"
|
|
;;
|
|
esac
|
|
|
|
SWAPTYPE=$(wait-for-root "${resume}" ${RESUMEDELAY:-5})
|
|
|
|
case "${SWAPTYPE}" in
|
|
swsuspend|s1suspend|s2suspend|ulsuspend|tuxonice)
|
|
if [ -x /bin/plymouth ] && plymouth --ping; then
|
|
plymouth message --text="Resuming from $resume"
|
|
fi
|
|
|
|
# hardcode path, uswsusp ships an resume binary too
|
|
if [ -n "${resume_offset}" ]; then
|
|
/bin/resume ${resume} ${resume_offset} >/dev/null 2>&1
|
|
else
|
|
/bin/resume ${resume} >/dev/null 2>&1
|
|
fi
|
|
;;
|
|
esac
|