From e7449d103f48a62cbf98f484d9fe48bb35426360 Mon Sep 17 00:00:00 2001 From: Kolan Sh Date: Mon, 1 Apr 2013 15:25:16 +0400 Subject: [PATCH] kernel-getlast: genkernel support. --- sbin/kernel-getlast.sh | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/sbin/kernel-getlast.sh b/sbin/kernel-getlast.sh index 64beda7..f6a79d4 100755 --- a/sbin/kernel-getlast.sh +++ b/sbin/kernel-getlast.sh @@ -2,11 +2,12 @@ let FORCE_REBUILD=0 KERNEL_REBUILD_ARGS="" +GENKERNEL_ARGS="--no-clean --no-mrproper" [ -f /etc/gentoo-upgrade.conf ] && source /etc/gentoo-upgrade.conf # available parameters -eval set -- "`getopt -o h,q --long help,force-rebuild,mrproper,quiet -- \"$@\"`" +eval set -- "`getopt -o h,q,g: --long help,force-rebuild,mrproper,quiet,genkernel-args: -- \"$@\"`" while true ; do case "$1" in @@ -15,6 +16,7 @@ while true ; do echo "Keys:" echo -e "-h, --help\t\t\tShow this help and exit." echo -e "--force-rebuild\t\t\tForce to rebuild kernel even if no new versions found." + echo -e "-g,--genkernel-args\t\tPass arguments to genkernel." echo -e "--mrproper\t\t\tClean kernel sources before rebuild." echo -e "-q, --quiet\t\t\tMake kernel configuration non-interactive." echo @@ -23,8 +25,9 @@ while true ; do exit 0 ;; --force-rebuild) let FORCE_REBUILD=1 ; shift ;; - --mrproper) KERNEL_REBUILD_ARGS="$KERNEL_REBUILD_ARGS --mrproper" ; shift ;; - -q|--quiet) KERNEL_REBUILD_ARGS="$KERNEL_REBUILD_ARGS --silent" ; shift ;; + -g|--genkernel-args) GENKERNEL_ARGS="$GENKERNEL_ARGS $2" ; shift ;; + --mrproper) KERNEL_REBUILD_ARGS="$KERNEL_REBUILD_ARGS --mrproper" ; shift 2 ;; + -q|--quiet) KERNEL_REBUILD_ARGS="$KERNEL_REBUILD_ARGS --silent" ; shift 2 ;; --) shift ; break ;; *) echo "Internal error!" ; exit -1 ;; esac @@ -54,20 +57,25 @@ kernel-clean.sh vmlinuz_file=/boot/`echo $new_kernel | sed 's~^linux~vmlinuz~'` [ "" == "$vmlinuz_file" ] && echo "vmlinuz_file == \"\"" && exit -1 +# genkernel or kernel-rebuild ? +if [ `which genkernel 2>/dev/null` ]; then + genkernel $GENKERNEL_ARGS all + [ 0 -ne $? ] && echo "genkernel $GENKERNEL_ARGS all failed ;-( =======" && exit -1 -if [[ ! -f "$vmlinuz_file" || 1 -eq $FORCE_REBUILD ]]; then - kernel-rebuild.sh $KERNEL_REBUILD_ARGS - [ 0 -ne $? ] && echo "kernel-rebuild.sh $KERNEL_REBUILD_ARGS failed" && exit -1 -fi +else # using kernel-rebuild + if [[ ! -f "$vmlinuz_file" || 1 -eq $FORCE_REBUILD ]]; then + kernel-rebuild.sh $KERNEL_REBUILD_ARGS + [ 0 -ne $? ] && echo "kernel-rebuild.sh $KERNEL_REBUILD_ARGS failed" && exit -1 + fi -# remounting file systems rw->ro -for fs in $RO_REMOUNT; do - if [[ "$fs" =~ ^/+usr/*$ || "$fs" =~ ^/+boot/*$ ]]; then - echo "remounting $fs -> ro" - mount -o remount,ro $fs - [ 0 -ne $? ] && echo "mount -o remount,ro $fs failed ;-( =======" && exit -1 - fi -done + # remounting file systems rw->ro + for fs in $RO_REMOUNT; do + if [[ "$fs" =~ ^/+usr/*$ || "$fs" =~ ^/+boot/*$ ]]; then + echo "remounting $fs -> ro" + mount -o remount,ro $fs + [ 0 -ne $? ] && echo "mount -o remount,ro $fs failed ;-( =======" && exit -1 + fi + done exit 0