commit: 5076a9ea355663c20016164e10948b7e5cc22ccb
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org>
AuthorDate: Thu Apr 21 17:04:50 2016 +0000
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org>
CommitDate: Thu Apr 21 17:04:50 2016 +0000
URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=5076a9ea
chroot-functions: genkernel: robustify version parsing
targets/support/chroot-functions.sh | 34 ++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/targets/support/chroot-functions.sh
b/targets/support/chroot-functions.sh
index 456ae4c..fe39251 100755
--- a/targets/support/chroot-functions.sh
+++ b/targets/support/chroot-functions.sh
@@ -17,23 +17,25 @@ trap "echo SIGKILL signal recieved killing $0 with pid
$$;kill -9 $$" SIGKILL
# * kernel recognizes this and generates SIGINT signal
trap "echo SIGINT signal recieved killing $0 with pid $$;kill -9 $$" SIGINT
-check_genkernel_version(){
- if [ -x /usr/bin/genkernel ]
- then
- genkernel_version=$(genkernel --version)
- genkernel_version_major=${genkernel_version%%.*}
-
genkernel_version_minor_sub=${genkernel_version#${genkernel_version_major}.}
- genkernel_version_minor=${genkernel_version_minor_sub%%.*}
- genkernel_version_sub=${genkernel_version##*.}
- if [ -n "${genkernel_version}" -a "${genkernel_version_major}"
-eq '3' -a "${genkernel_version_minor}" -ge '3' ]
- then
- echo "Genkernel version ${genkernel_version} found ...
continuing"
- else
- echo "ERROR: Your genkernel version is too low in your
seed stage. genkernel version 3.3.0"
- echo "or greater is required."
- exit 1
- fi
+check_genkernel_version() {
+ local version parts=() major minor
+
+ version=$(genkernel --version)
+ if [[ -z ${version} ]] ; then
+ echo "ERROR: Could not detect genkernel version!"
+ exit 1
+ fi
+ printf 'Genkernel version '%s' found ... ' "${version}"
+
+ IFS='.' read -a parts <<<"${version}"
+ major=${parts[0]}
+ minor=${parts[1]}
+ if [[ ${major} -gt 3 || ( ${major} -eq 3 && ${minor} -ge 3 ) ]] ; then
+ echo "OK"
else
+ echo "FAIL"
+ echo "ERROR: Your genkernel version is too low in your seed
stage."
+ echo " genkernel version 3.3.0 or greater is required."
exit 1
fi
}