Во многих скриптах есть
checksfsxzb >/dev/null 2>&1
if [ $? -gt 0 ]; then
echo "Kernel not support PFS!" >&2; exit 1
fi
status=0
В pfslib
function checksfsxzb () {
kerneluname="$(uname -r)"
kernel1ver="$(echo -n "${kerneluname}" | cut -f 1 -d '.' | cut -f 1 -d '-')"
if [ ${kernel1ver} -lt 3 ];then
kernel2ver="$(echo -n "${kerneluname}" | cut -f 2 -d '.' | cut -f 1 -d '-')"
if [ ${kernel2ver} -lt 6 ];then
echo "Kernel does not support SquashFS compressed XZ!" >&2; exit 1
else
kernel3ver="$(echo -n "${kerneluname}" | cut -f 3 -d '.' | cut -f 1 -d '-')"
if [ ${kernel3ver} -lt 38 ]; then
echo "Kernel does not support SquashFS compressed XZ!" >&2; exit 1
fi
fi
fi
return 0
}
1. Почему эта проверка не во всех скриптах... Например в mkpfs нет
2. Надо ли при каждом вызове это проверять... Может это в инсталлятор перенести
3. В каком случае checksfsxzb вернется с ненулевым кодом завершения. Я так понимаю никогда. Пока он был отдельным скриптом - да. Т.е. как минимум echo "Kernel not support PFS!" >&2; exit 1 надо убирать
Как делаем?
Кстати "exit 1" во многих функциях в libpfs. Надо заменить на "return 1" или проанализировать код глубже