resume 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/bin/sh
  2. PREREQ=""
  3. prereqs()
  4. {
  5. echo "$PREREQ"
  6. }
  7. case $1 in
  8. # get pre-requisites
  9. prereqs)
  10. prereqs
  11. exit 0
  12. ;;
  13. esac
  14. if [ -z "${resume}" ]; then
  15. exit 0
  16. fi
  17. case $resume in
  18. LABEL=*)
  19. resume="${resume#LABEL=}"
  20. # support any / in LABEL= path (escape to \x2f)
  21. case "${resume}" in
  22. */*)
  23. if command -v sed >/dev/null 2>&1; then
  24. resume="$(echo ${resume} | sed 's,/,\\x2f,g')"
  25. else
  26. if [ "${resume}" != "${resume#/}" ]; then
  27. resume="\x2f${resume#/}"
  28. fi
  29. if [ "${resume}" != "${resume%/}" ]; then
  30. resume="${resume%/}\x2f"
  31. fi
  32. IFS='/'
  33. newresume=
  34. for s in $resume; do
  35. newresume="${newresume:+${newresume}\\x2f}${s}"
  36. done
  37. unset IFS
  38. resume="${newresume}"
  39. fi
  40. esac
  41. resume="/dev/disk/by-label/${resume}"
  42. ;;
  43. UUID=*)
  44. resume="/dev/disk/by-uuid/${resume#UUID=}"
  45. ;;
  46. esac
  47. SWAPTYPE=$(wait-for-root "${resume}" ${RESUMEDELAY:-5})
  48. case "${SWAPTYPE}" in
  49. swsuspend|s1suspend|s2suspend|ulsuspend|tuxonice)
  50. if [ -x /bin/plymouth ] && plymouth --ping; then
  51. plymouth message --text="Resuming from $resume"
  52. fi
  53. # hardcode path, uswsusp ships an resume binary too
  54. if [ -n "${resume_offset}" ]; then
  55. /bin/resume ${resume} ${resume_offset}
  56. else
  57. /bin/resume ${resume}
  58. fi
  59. ;;
  60. esac