dracut-functions.sh: fixed vercmp()
parent
613ed5cd76
commit
f06c2b5852
|
|
@ -91,9 +91,37 @@ if ! [[ $kernel ]]; then
|
|||
export kernel
|
||||
fi
|
||||
|
||||
# Version comparision function. Assumes Linux style version scheme.
|
||||
# $1 = version a
|
||||
# $2 = comparision op (gt, ge, eq, le, lt, ne)
|
||||
# $3 = version b
|
||||
vercmp() {
|
||||
local _n1=(${1//./ }) _op=$2 _n2=(${3//./ }) _i _res
|
||||
|
||||
for ((_i=0; ; _i++))
|
||||
do
|
||||
if [[ ! ${_n1[_i]}${_n2[_i]} ]]; then _res=0
|
||||
elif ((${_n1[_i]:-0} > ${_n2[_i]:-0})); then _res=1
|
||||
elif ((${_n1[_i]:-0} < ${_n2[_i]:-0})); then _res=2
|
||||
else continue
|
||||
fi
|
||||
break
|
||||
done
|
||||
|
||||
case $_op in
|
||||
gt) ((_res == 1));;
|
||||
ge) ((_res != 2));;
|
||||
eq) ((_res == 0));;
|
||||
le) ((_res != 1));;
|
||||
lt) ((_res == 2));;
|
||||
ne) ((_res != 0));;
|
||||
esac
|
||||
}
|
||||
|
||||
srcmods="/lib/modules/$kernel/"
|
||||
|
||||
[[ $drivers_dir ]] && {
|
||||
if vercmp "$(modprobe --version | cut -d' ' -f3)" lt 3.7; then
|
||||
if ! command -v kmod &>/dev/null && vercmp "$(modprobe --version | cut -d' ' -f3)" lt 3.7; then
|
||||
dfatal 'To use --kmoddir option module-init-tools >= 3.7 is required.'
|
||||
exit 1
|
||||
fi
|
||||
|
|
@ -134,33 +162,6 @@ mksubdirs() {
|
|||
[[ -e ${1%/*} ]] || mkdir -m 0755 -p -- "${1%/*}"
|
||||
}
|
||||
|
||||
# Version comparision function. Assumes Linux style version scheme.
|
||||
# $1 = version a
|
||||
# $2 = comparision op (gt, ge, eq, le, lt, ne)
|
||||
# $3 = version b
|
||||
vercmp() {
|
||||
local _n1=${1//./ } _op=$2 _n2=${3//./ } _i _res
|
||||
|
||||
for ((_i=0; ; _i++))
|
||||
do
|
||||
if [[ ! ${_n1[_i]}${_n2[_i]} ]]; then _res=0
|
||||
elif ((${_n1[_i]:-0} > ${_n2[_i]:-0})); then _res=1
|
||||
elif ((${_n1[_i]:-0} < ${_n2[_i]:-0})); then _res=2
|
||||
else continue
|
||||
fi
|
||||
break
|
||||
done
|
||||
|
||||
case $_op in
|
||||
gt) ((_res == 1));;
|
||||
ge) ((_res != 2));;
|
||||
eq) ((_res == 0));;
|
||||
le) ((_res != 1));;
|
||||
lt) ((_res == 2));;
|
||||
ne) ((_res != 0));;
|
||||
esac
|
||||
}
|
||||
|
||||
# is_func <command>
|
||||
# Check whether $1 is a function.
|
||||
is_func() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue