parent
5f927f201d
commit
22ecea456b
2
dracut
2
dracut
|
@ -184,7 +184,7 @@ abs_outfile=$(readlink -f "$outfile") && outfile="$abs_outfile"
|
||||||
|
|
||||||
srcmods="/lib/modules/$kernel/"
|
srcmods="/lib/modules/$kernel/"
|
||||||
[[ $drivers_dir ]] && {
|
[[ $drivers_dir ]] && {
|
||||||
if verlt $(modprobe --version | cut -d' ' -f3) 3.7; then
|
if vercmp $(modprobe --version | cut -d' ' -f3) lt 3.7; then
|
||||||
derror 'To use --kmoddir option module-init-tools >= 3.7 is required.'
|
derror 'To use --kmoddir option module-init-tools >= 3.7 is required.'
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -24,38 +24,31 @@ IF_dynamic=""
|
||||||
# Generic substring function. If $2 is in $1, return 0.
|
# Generic substring function. If $2 is in $1, return 0.
|
||||||
strstr() { [[ $1 =~ $2 ]]; }
|
strstr() { [[ $1 =~ $2 ]]; }
|
||||||
|
|
||||||
# Version comparision function. Returns result similar to C strcmp,
|
# Version comparision function. Assumes Linux style version scheme.
|
||||||
# but instead of -1 is 2. Function assumes version scheme like does
|
# $1 = version a
|
||||||
# Linux kernel.
|
# $2 = comparision op (gt, ge, eq, le, lt, ne)
|
||||||
# $1 < $2 -> 2
|
# $3 = version b
|
||||||
# $1 = $2 -> 0
|
|
||||||
# $1 > $2 -> 1
|
|
||||||
# To remember it easy, ask the question: Which argument is greater? ;-)
|
|
||||||
vercmp() {
|
vercmp() {
|
||||||
local i n1=(${1//./ }) n2=(${2//./ })
|
local n1=(${1//./ }) op=$2 n2=(${3//./ }) i res
|
||||||
|
|
||||||
for ((i=0; ; i++))
|
for ((i=0; ; i++))
|
||||||
do
|
do
|
||||||
[[ ${n1[i]} && ! ${n2[i]} ]] && return 1
|
if [[ ! ${n1[i]}${n2[i]} ]]; then res=0
|
||||||
[[ ! ${n1[i]} && ${n2[i]} ]] && return 2
|
elif ((${n1[i]:-0} > ${n2[i]:-0})); then res=1
|
||||||
[[ ${n1[i]} && ${n2[i]} ]] || return 0
|
elif ((${n1[i]:-0} < ${n2[i]:-0})); then res=2
|
||||||
((${n1[i]} > ${n2[i]})) && return 1
|
else continue
|
||||||
((${n1[i]} < ${n2[i]})) && return 2
|
fi
|
||||||
|
break
|
||||||
done
|
done
|
||||||
}
|
|
||||||
|
|
||||||
# Variation of version comparision function. If $1 >= $2, return 0.
|
case $op in
|
||||||
verge() {
|
gt) ((res == 1));;
|
||||||
vercmp $1 $2
|
ge) ((res != 2));;
|
||||||
|
eq) ((res == 0));;
|
||||||
[[ $? = 0 || $? = 1 ]]
|
le) ((res != 1));;
|
||||||
}
|
lt) ((res == 2));;
|
||||||
|
ne) ((res != 0));;
|
||||||
# Variation of version comparision function. If $1 < $2, return 0.
|
esac
|
||||||
verlt() {
|
|
||||||
vercmp $1 $2
|
|
||||||
|
|
||||||
[[ $? = 2 ]]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Log initrd creation.
|
# Log initrd creation.
|
||||||
|
|
Loading…
Reference in New Issue