resume: add support for labeled resume devices
authorDavid Dillow <dave@thedillows.org>
Mon, 1 Jun 2009 04:25:09 +0000 (00:25 -0400)
committerDavid Dillow <dave@thedillows.org>
Mon, 1 Jun 2009 04:27:06 +0000 (00:27 -0400)
I noticed when doing the block root= parser that resume
didn't support labeled resume devices. Fix that up and
get rid of a dependency on /bin/echo in the process.

modules.d/95resume/install
modules.d/95resume/parse-resume.sh
modules.d/95resume/resume-genrules.sh

index 945611e..cecd2fc 100755 (executable)
@@ -1,5 +1,4 @@
 #!/bin/bash
-dracut_install echo
 inst_hook cmdline 10 "$moddir/parse-resume.sh"
 inst_hook pre-udev 30 "$moddir/resume-genrules.sh"
 inst_hook mount 90 "$moddir/resume.sh"
index 447e151..94d7112 100755 (executable)
@@ -5,3 +5,11 @@ if resume=$(getarg resume=) && ! getarg noresume; then
 else
     unset resume
 fi
+
+case "$resume" in
+    LABEL=*)
+       resume="$(echo $resume | sed 's,/,\\x2f,g')"
+       resume="/dev/disk/by-label/${resume#LABEL=}" ;;
+    UUID=*)
+       resume="/dev/disk/by-uuid/${resume#UUID=}" ;;
+esac
index 108c3f7..7c95715 100755 (executable)
@@ -1,6 +1,8 @@
-resume=$(getarg resume=) && ! getarg noresume  && {
-(
-       /bin/echo -e 'KERNEL=="'${resume#/dev/}'", RUN+="/bin/echo %M:%m > /sys/power/resume"'
-       /bin/echo -e 'SYMLINK=="'${resume#/dev/}'", RUN+="/bin/echo %M:%m > /sys/power/resume"'
-) >> /etc/udev/rules.d/99-resume.rules
-}
+if [ -n "$resume" ]; then
+    (
+    printf 'KERNEL=="%s", RUN+="/bin/echo %%M:%%m > /sys/power/resume"\n' \
+               ${resume#/dev/}
+    printf 'SYMLINK=="%s", RUN+="/bin/echo %%M:%%m > /sys/power/resume"\n' \
+               ${resume#/dev/}
+    ) >> /etc/udev/rules.d/99-resume.rules
+fi