oglive-builder/old/initramfs-tools-OG-unionfs/usr/share/initramfs-tools/scripts/local-premount/resume

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