lsinitrd.sh: prevent < <$() construct
Running dracut in a chroot environment, which has /dev not correctly setup will result in errors like: /usr/bin/lsinitrd: line 164: /dev/fd/62: No such file or directory cpio: Malformed number �5�OK�� cpio: Malformed number 5�OK�� cpio: Malformed number �OK�� This is because bash wants /dev/fd/<num> for constructs like: foo < <$(bar)master
parent
2c7f7a337a
commit
fd9f902477
32
lsinitrd.sh
32
lsinitrd.sh
|
|
@ -160,27 +160,35 @@ case $bin in
|
|||
;;
|
||||
esac
|
||||
|
||||
if [[ $SKIP ]]; then
|
||||
read -N 6 bin < <($SKIP "$image")
|
||||
fi
|
||||
|
||||
case $bin in
|
||||
CAT=$({
|
||||
if [[ $SKIP ]]; then
|
||||
$SKIP "$image"
|
||||
else
|
||||
cat "$image"
|
||||
fi } | {
|
||||
read -N 6 bin
|
||||
case $bin in
|
||||
$'\x1f\x8b'*)
|
||||
CAT="zcat --";;
|
||||
echo "zcat --"
|
||||
;;
|
||||
BZh*)
|
||||
CAT="bzcat --";;
|
||||
echo "bzcat --"
|
||||
;;
|
||||
$'\x71\xc7'*|070701)
|
||||
CAT="cat --"
|
||||
echo "cat --"
|
||||
;;
|
||||
$'\x02\x21'*)
|
||||
CAT="lz4 -d -c";;
|
||||
echo "lz4 -d -c"
|
||||
;;
|
||||
*)
|
||||
CAT="xzcat --";
|
||||
if echo "test"|xz|xzcat --single-stream >/dev/null 2>&1; then
|
||||
CAT="xzcat --single-stream --"
|
||||
echo "xzcat --single-stream --"
|
||||
else
|
||||
echo "xzcat --"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
esac
|
||||
})
|
||||
|
||||
skipcpio()
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue