summaryrefslogtreecommitdiff
path: root/scripts/local-premount
diff options
context:
space:
mode:
authorAn-Cheng Huang <ancheng@vyatta.com>2010-09-09 17:12:53 -0700
committerAn-Cheng Huang <ancheng@vyatta.com>2010-09-09 17:12:53 -0700
commit573e21e410934f2293d5ac4c738af5f77083b43b (patch)
tree006a2586447b7f2e9353556f74633db605436777 /scripts/local-premount
parent0de1ad17c333d645774ac3b48d652ccd4ecd6900 (diff)
parent7a6f9e972def00f7f0435d9f2616bcb79dc619b7 (diff)
downloadinitramfs-tools-573e21e410934f2293d5ac4c738af5f77083b43b.tar.gz
initramfs-tools-573e21e410934f2293d5ac4c738af5f77083b43b.zip
Merge branch 'upstream' (0.98.2) into mendocino
Conflicts: debian/changelog debian/compat debian/control debian/rules hook-functions mkinitramfs
Diffstat (limited to 'scripts/local-premount')
-rwxr-xr-xscripts/local-premount/resume29
1 files changed, 26 insertions, 3 deletions
diff --git a/scripts/local-premount/resume b/scripts/local-premount/resume
index 6bf95e5..11acfc7 100755
--- a/scripts/local-premount/resume
+++ b/scripts/local-premount/resume
@@ -20,10 +20,33 @@ if [ -z "${resume}" ]; then
fi
case $resume in
- LABEL=*)
- resume="/dev/disk/by-label/${resume#LABEL=}"
+LABEL=*)
+ resume="${resume#LABEL=}"
+
+ # support any / in LABEL= path (escape to \x2f)
+ case "${resume}" in
+ */*)
+ if command -v sed >/dev/null 2>&1; 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
+ newresume="${newresume:+${newresume}\\x2f}${s}"
+ done
+ unset IFS
+ resume="${newresume}"
+ fi
+ esac
+ resume="/dev/disk/by-label/${resume}"
;;
- UUID=*)
+UUID=*)
resume="/dev/disk/by-uuid/${resume#UUID=}"
;;
esac