remove "< <(" syntax

bash seems to want /dev/fd in that case. dracut is sometimes called in
environments, where /proc and /dev are not mounted.
master
Harald Hoyer 2013-07-31 11:00:29 +02:00
parent aa23dcd8ae
commit dba2055979
2 changed files with 90 additions and 89 deletions

View File

@ -313,9 +313,9 @@ get_fs_env() {
# $ get_maj_min /dev/sda2 # $ get_maj_min /dev/sda2
# 8:2 # 8:2
get_maj_min() { get_maj_min() {
local _maj _min local _maj _min _majmin
read _maj _min < <(stat -L -c '%t %T' "$1" 2>/dev/null) _majmin="$(stat -L -c '%t:%T' "$1" 2>/dev/null)"
printf "%s" "$((0x$_maj)):$((0x$_min))" printf "%s" "$((0x${_majmin%:*})):$((0x${_majmin#*:}))"
} }


# find_block_device <mountpoint> # find_block_device <mountpoint>
@ -333,10 +333,11 @@ find_block_device() {
_find_mpt="$1" _find_mpt="$1"
if [[ $use_fstab != yes ]]; then if [[ $use_fstab != yes ]]; then
[[ -d $_find_mpt/. ]] [[ -d $_find_mpt/. ]]
findmnt -e -v -n -o 'MAJ:MIN,SOURCE' --target "$_find_mpt" | { \
while read _majmin _dev; do while read _majmin _dev; do
if [[ -b $_dev ]]; then if [[ -b $_dev ]]; then
if ! [[ $_majmin ]] || [[ $_majmin == 0:* ]]; then if ! [[ $_majmin ]] || [[ $_majmin == 0:* ]]; then
read _majmin < <(get_maj_min $_dev) _majmin=$(get_maj_min $_dev)
fi fi
if [[ $_majmin ]]; then if [[ $_majmin ]]; then
echo $_majmin echo $_majmin
@ -349,17 +350,18 @@ find_block_device() {
echo $_dev echo $_dev
return 0 return 0
fi fi
done < <(findmnt -e -v -n -o 'MAJ:MIN,SOURCE' --target "$_find_mpt") done; return 1; } && return 0
fi fi
# fall back to /etc/fstab # fall back to /etc/fstab


findmnt -e --fstab -v -n -o 'MAJ:MIN,SOURCE' --target "$_find_mpt" | { \
while read _majmin _dev; do while read _majmin _dev; do
if ! [[ $_dev ]]; then if ! [[ $_dev ]]; then
_dev="$_majmin" _dev="$_majmin"
unset _majmin unset _majmin
fi fi
if [[ -b $_dev ]]; then if [[ -b $_dev ]]; then
[[ $_majmin ]] || read _majmin < <(get_maj_min $_dev) [[ $_majmin ]] || _majmin=$(get_maj_min $_dev)
if [[ $_majmin ]]; then if [[ $_majmin ]]; then
echo $_majmin echo $_majmin
else else
@ -371,7 +373,7 @@ find_block_device() {
echo $_dev echo $_dev
return 0 return 0
fi fi
done < <(findmnt -e --fstab -v -n -o 'MAJ:MIN,SOURCE' --target "$_find_mpt") done; return 1; } && return 0


return 1 return 1
} }
@ -388,20 +390,22 @@ find_mp_fstype() {
local _fs local _fs


if [[ $use_fstab != yes ]]; then if [[ $use_fstab != yes ]]; then
findmnt -e -v -n -o 'FSTYPE' --target "$1" | { \
while read _fs; do while read _fs; do
[[ $_fs ]] || continue [[ $_fs ]] || continue
[[ $_fs = "autofs" ]] && continue [[ $_fs = "autofs" ]] && continue
echo -n $_fs echo -n $_fs
return 0 return 0
done < <(findmnt -e -v -n -o 'FSTYPE' --target "$1") done; return 1; } && return 0
fi fi


findmnt --fstab -e -v -n -o 'FSTYPE' --target "$1" | { \
while read _fs; do while read _fs; do
[[ $_fs ]] || continue [[ $_fs ]] || continue
[[ $_fs = "autofs" ]] && continue [[ $_fs = "autofs" ]] && continue
echo -n $_fs echo -n $_fs
return 0 return 0
done < <(findmnt --fstab -e -v -n -o 'FSTYPE' --target "$1") done; return 1; } && return 0


return 1 return 1
} }
@ -420,20 +424,22 @@ find_dev_fstype() {
[[ "$_find_dev" = /dev* ]] || _find_dev="/dev/block/$_find_dev" [[ "$_find_dev" = /dev* ]] || _find_dev="/dev/block/$_find_dev"


if [[ $use_fstab != yes ]]; then if [[ $use_fstab != yes ]]; then
findmnt -e -v -n -o 'FSTYPE' --source "$_find_dev" | { \
while read _fs; do while read _fs; do
[[ $_fs ]] || continue [[ $_fs ]] || continue
[[ $_fs = "autofs" ]] && continue [[ $_fs = "autofs" ]] && continue
echo -n $_fs echo -n $_fs
return 0 return 0
done < <(findmnt -e -v -n -o 'FSTYPE' --source "$_find_dev") done; return 1; } && return 0
fi fi


findmnt --fstab -e -v -n -o 'FSTYPE' --source "$_find_dev" | { \
while read _fs; do while read _fs; do
[[ $_fs ]] || continue [[ $_fs ]] || continue
[[ $_fs = "autofs" ]] && continue [[ $_fs = "autofs" ]] && continue
echo -n $_fs echo -n $_fs
return 0 return 0
done < <(findmnt --fstab -e -v -n -o 'FSTYPE' --source "$_find_dev") done; return 1; } && return 0


return 1 return 1


@ -474,12 +480,12 @@ check_block_and_slaves() {
"$1" $2 && return "$1" $2 && return
check_vol_slaves "$@" && return 0 check_vol_slaves "$@" && return 0
if [[ -f /sys/dev/block/$2/../dev ]]; then if [[ -f /sys/dev/block/$2/../dev ]]; then
check_block_and_slaves $1 $(cat "/sys/dev/block/$2/../dev") && return 0 check_block_and_slaves $1 $(<"/sys/dev/block/$2/../dev") && return 0
fi fi
[[ -d /sys/dev/block/$2/slaves ]] || return 1 [[ -d /sys/dev/block/$2/slaves ]] || return 1
for _x in /sys/dev/block/$2/slaves/*/dev; do for _x in /sys/dev/block/$2/slaves/*/dev; do
[[ -f $_x ]] || continue [[ -f $_x ]] || continue
check_block_and_slaves $1 $(cat "$_x") && return 0 check_block_and_slaves $1 $(<"$_x") && return 0
done done
return 1 return 1
} }
@ -492,12 +498,12 @@ check_block_and_slaves_all() {
fi fi
check_vol_slaves "$@" && return 0 check_vol_slaves "$@" && return 0
if [[ -f /sys/dev/block/$2/../dev ]]; then if [[ -f /sys/dev/block/$2/../dev ]]; then
check_block_and_slaves_all $1 $(cat "/sys/dev/block/$2/../dev") && _ret=0 check_block_and_slaves_all $1 $(<"/sys/dev/block/$2/../dev") && _ret=0
fi fi
[[ -d /sys/dev/block/$2/slaves ]] || return 1 [[ -d /sys/dev/block/$2/slaves ]] || return 1
for _x in /sys/dev/block/$2/slaves/*/dev; do for _x in /sys/dev/block/$2/slaves/*/dev; do
[[ -f $_x ]] || continue [[ -f $_x ]] || continue
check_block_and_slaves_all $1 $(cat "$_x") && _ret=0 check_block_and_slaves_all $1 $(<"$_x") && _ret=0
done done
return $_ret return $_ret
} }
@ -1478,7 +1484,8 @@ dracut_kernel_post() {
done < "$DRACUT_KERNEL_LAZY_HASHDIR/lazylist.dep" done < "$DRACUT_KERNEL_LAZY_HASHDIR/lazylist.dep"
fi fi
) & ) &
while read a ; do _pid=$a;done < <(jobs -p) _pid=$(jobs -p | while read a ; do printf ":$a";done)
_pid=${_pid##*:}


if [[ $DRACUT_INSTALL ]]; then if [[ $DRACUT_INSTALL ]]; then
xargs -r modinfo -k $kernel -F firmware < "$DRACUT_KERNEL_LAZY_HASHDIR/lazylist.dep" \ xargs -r modinfo -k $kernel -F firmware < "$DRACUT_KERNEL_LAZY_HASHDIR/lazylist.dep" \
@ -1522,7 +1529,7 @@ dracut_kernel_post() {
[[ $DRACUT_KERNEL_LAZY_HASHDIR ]] && rm -fr -- "$DRACUT_KERNEL_LAZY_HASHDIR" [[ $DRACUT_KERNEL_LAZY_HASHDIR ]] && rm -fr -- "$DRACUT_KERNEL_LAZY_HASHDIR"
} }


module_is_host_only() { ( module_is_host_only() {
local _mod=$1 local _mod=$1
_mod=${_mod##*/} _mod=${_mod##*/}
_mod=${_mod%.ko} _mod=${_mod%.ko}
@ -1541,7 +1548,6 @@ module_is_host_only() { (
modinfo -F filename "$_mod" &>/dev/null || return 0 modinfo -F filename "$_mod" &>/dev/null || return 0


return 1 return 1
)
} }


find_kernel_modules_by_path () { find_kernel_modules_by_path () {

View File

@ -245,15 +245,14 @@ dropindirs_sort()
local -a files local -a files
local f d local f d


readarray -t files < <(
for d in "$@"; do for d in "$@"; do
for i in "$d/"*"$suffix"; do for i in "$d/"*"$suffix"; do
if [[ -e "$i" ]]; then if [[ -e "$i" ]]; then
printf "%s\n" "${i##*/}" printf "%s\n" "${i##*/}"
fi fi
done done
done | sort -Vu done | sort -Vu | {
) readarray -t files


for f in "${files[@]}"; do for f in "${files[@]}"; do
for d in "$@"; do for d in "$@"; do
@ -263,6 +262,7 @@ dropindirs_sort()
fi fi
done done
done done
}
} }


verbosity_mod_l=0 verbosity_mod_l=0
@ -907,31 +907,26 @@ if [[ $hostonly ]]; then
fi fi
fi fi


_get_fs_type() { ( _get_fs_type() {
[[ $1 ]] || return [[ $1 ]] || return
if [[ -b /dev/block/$1 ]] && ID_FS_TYPE=$(get_fs_env "/dev/block/$1"); then if [[ -b /dev/block/$1 ]] && ID_FS_TYPE=$(get_fs_env "/dev/block/$1"); then
printf "%s\n" "$(readlink -f "/dev/block/$1")" "$ID_FS_TYPE" host_fs_types["$(readlink -f "/dev/block/$1")"]="$ID_FS_TYPE"
return 1 return 1
fi fi
if [[ -b $1 ]] && ID_FS_TYPE=$(get_fs_env "$1"); then if [[ -b $1 ]] && ID_FS_TYPE=$(get_fs_env "$1"); then
printf "%s\n" "$(readlink -f "$1")" "$ID_FS_TYPE" host_fs_types["$(readlink -f "$1")"]="$ID_FS_TYPE"
return 1 return 1
fi fi
if fstype=$(find_dev_fstype "$1"); then if fstype=$(find_dev_fstype "$1"); then
printf "%s\n" "$1" "$fstype" host_fs_types["$1"]="$fstype"
return 1 return 1
fi fi
return 1 return 1
) } }


for dev in "${host_devs[@]}"; do for dev in ${host_devs[@]}; do
while read key; do
read val
host_fs_types["$key"]="$val"
done < <(
_get_fs_type "$dev" _get_fs_type "$dev"
check_block_and_slaves_all _get_fs_type "$(get_maj_min "$dev")" check_block_and_slaves_all _get_fs_type "$(get_maj_min "$dev")"
)
done done


[[ -d $udevdir ]] \ [[ -d $udevdir ]] \