summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Prokop <mika@debian.org>2010-06-16 10:33:53 +0200
committerMichael Prokop <mika@debian.org>2010-06-16 10:33:53 +0200
commit4d3852584d6e7c48d08d53c5c33d5c145a726e7a (patch)
treec0a2b13c5032e959848736f50baad4834a6fb17f
parentda23eceb3bc95bd73cb13efc4ec19a3d67c854f2 (diff)
parent5697c3b7e4ece610e71117f1dddb2cc8637f8420 (diff)
downloadinitramfs-tools-4d3852584d6e7c48d08d53c5c33d5c145a726e7a.tar.gz
initramfs-tools-4d3852584d6e7c48d08d53c5c33d5c145a726e7a.zip
Merge branch 'mika/replace-awk-with-sed'
-rw-r--r--hook-functions21
1 files changed, 3 insertions, 18 deletions
diff --git a/hook-functions b/hook-functions
index ffb6a67..1a0e097 100644
--- a/hook-functions
+++ b/hook-functions
@@ -273,9 +273,7 @@ dep_add_modules()
done
# lvm on md or luks on md
if [ "${block#md}" != "${block}" ]; then
- block=$(grep "^${block}" /proc/mdstat | \
- awk "{gsub(/^${block} : .* (multipath|linear|raid[[:digit:]]+)\ /,\"\")};1")
- block="${block%%\[*}"
+ block=$(sed -ne 's/multipath/[/' -e 's/linear/[/' -e 's/raid[0-9][0-9]*/[/' -e 's/\([hs]d[a-z][a-z]*\)[0-9][0-9]*/\1/g' -e '/^'${block}' :/s/^[^[]*\[ \([^\[]*\)\[.*$/\1/p' </proc/mdstat)
fi
# luks or lvm on cciss or ida
if [ "${block#cciss}" != "${block}" ] \
@@ -287,28 +285,15 @@ dep_add_modules()
# md root new naming scheme /dev/md/X
elif [ "${root#/dev/md/}" != "${root}" ]; then
root=${root#/dev/md/}
- block=$(grep "^md${root}" /proc/mdstat | \
- awk "{gsub(/^md${root} : .* (multipath|linear|raid[[:digit:]]+)\ /,\"\")};1")
- block="${block%%\[*}"
# drop the partition number only for sdX and hdX devices
# and keep it for other devices like loop#, dm-# devices
- case "$block" in
- sd*) block=${block%%[0-9]*};;
- hd*) block=${block%%[0-9]*};;
- esac
+ block=$(sed -ne 's/multipath/[/' -e 's/linear/[/' -e 's/raid[0-9][0-9]*/[/' -e 's/\([hs]d[a-z][a-z]*\)[0-9][0-9]*/\1/g' -e '/^md'$root' :/s/^[^[]*\[ \([^\[]*\)\[.*$/\1/p' </proc/mdstat)
# md root /dev/mdX
elif [ "${root#/dev/md}" != "${root}" ]; then
root=${root#/dev/md}
- block=$(grep "^md${root}" /proc/mdstat | \
- awk "{gsub(/^md${root} : .* (multipath|linear|raid[[:digit:]]+)\ /,\"\")};1")
- block="${block%%\[*}"
# drop the partition number only for sdX and hdX devices
# and keep it for other devices like loop#, dm-# devices
- case "$block" in
- sd*) block=${block%%[0-9]*};;
- hd*) block=${block%%[0-9]*};;
- esac
-
+ block=$(sed -ne 's/multipath/[/' -e 's/linear/[/' -e 's/raid[0-9][0-9]*/[/' -e 's/\([hs]d[a-z][a-z]*\)[0-9][0-9]*/\1/g' -e '/^md'$root' :/s/^[^[]*\[ \([^\[]*\)\[.*$/\1/p' </proc/mdstat)
# cciss device
elif [ "${root#/dev/cciss/}" != "${root}" ]; then
block=${root#/dev/cciss/*}