]> git.proxmox.com Git - grub2.git/commitdiff
Split in two commits. This one's the second.
authorrobertmh <robertmh@localhost>
Fri, 7 Aug 2009 12:05:06 +0000 (12:05 +0000)
committerrobertmh <robertmh@localhost>
Fri, 7 Aug 2009 12:05:06 +0000 (12:05 +0000)
2009-08-07  Robert Millan  <rmh.grub@aybabtu.com>

        * util/grub.d/10_linux.in (test_numeric): Moved from here ...
        * util/grub-mkconfig_lib.in (version_test_numeric): ... to here.
        Update all users.

        * util/grub.d/10_linux.in (test_gt): Strip any basename prefix,
        not just "vmlinu[zx]".
        Moved from here ...
        * util/grub-mkconfig_lib.in (version_test_gt): ... to here.  Update
        all users.

        * util/grub.d/10_linux.in (find_latest): Moved from here ...
        * util/grub-mkconfig_lib.in (version_find_latest): ... to here.  Update
        all users.

util/grub-mkconfig_lib.in
util/grub.d/10_linux.in

index d27b72ea1315216e64e9abe131847bdbc143424c..52dac00fe933c3242599bc51cdf5b9d22d890f30 100644 (file)
@@ -176,3 +176,54 @@ grub_file_is_not_garbage ()
   fi
   return 0
 }
+
+version_test_numeric ()
+{
+  local a=$1
+  local cmp=$2
+  local b=$3
+  if [ "$a" = "$b" ] ; then
+    case $cmp in
+      ge|eq|le) return 0 ;;
+      gt|lt) return 1 ;;
+    esac
+  fi
+  if [ "$cmp" = "lt" ] ; then
+    c=$a
+    a=$b
+    b=$c
+  fi
+  if (echo $a ; echo $b) | sort -n | head -n 1 | grep -qx $b ; then
+    return 0
+  else
+    return 1
+  fi
+}
+
+version_test_gt ()
+{
+  local a=`echo $1 | sed -e "s/[^-]*-//g"`
+  local b=`echo $2 | sed -e "s/[^-]*-//g"`
+  local cmp=gt
+  if [ "x$b" = "x" ] ; then
+    return 0
+  fi
+  case $a:$b in
+    *.old:*.old) ;;
+    *.old:*) a=`echo -n $a | sed -e s/\.old$//g` ; cmp=gt ;;
+    *:*.old) b=`echo -n $b | sed -e s/\.old$//g` ; cmp=ge ;;
+  esac
+  version_test_numeric $a $cmp $b
+  return $?
+}
+
+version_find_latest ()
+{
+  local a=""
+  for i in $@ ; do
+    if version_test_gt "$i" "$a" ; then
+      a="$i"
+    fi
+  done
+  echo "$a"
+}
index 637bf3e9420fa775bb4a9bf726714333a32b45d5..4df078e8fe22e6f978e522eddaad5cf62f4dffa9 100644 (file)
@@ -42,57 +42,6 @@ else
   LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
 fi
 
-test_numeric ()
-{
-  local a=$1
-  local cmp=$2
-  local b=$3
-  if [ "$a" = "$b" ] ; then
-    case $cmp in
-      ge|eq|le) return 0 ;;
-      gt|lt) return 1 ;;
-    esac
-  fi
-  if [ "$cmp" = "lt" ] ; then
-    c=$a
-    a=$b
-    b=$c
-  fi
-  if (echo $a ; echo $b) | sort -n | head -n 1 | grep -qx $b ; then
-    return 0
-  else
-    return 1
-  fi
-}
-
-test_gt ()
-{
-  local a=`echo $1 | sed -e "s/[^-]*-//g"`
-  local b=`echo $2 | sed -e "s/[^-]*-//g"`
-  local cmp=gt
-  if [ "x$b" = "x" ] ; then
-    return 0
-  fi
-  case $a:$b in
-    *.old:*.old) ;;
-    *.old:*) a=`echo -n $a | sed -e s/\.old$//g` ; cmp=gt ;;
-    *:*.old) b=`echo -n $b | sed -e s/\.old$//g` ; cmp=ge ;;
-  esac
-  test_numeric $a $cmp $b
-  return $?
-}
-
-find_latest ()
-{
-  local a=""
-  for i in $@ ; do
-    if test_gt "$i" "$a" ; then
-      a="$i"
-    fi
-  done
-  echo "$a"
-}
-
 linux_entry ()
 {
   cat << EOF
@@ -117,7 +66,7 @@ list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* ; do
       done`
 
 while [ "x$list" != "x" ] ; do
-  linux=`find_latest $list`
+  linux=`version_find_latest $list`
   echo "Found linux image: $linux" >&2
   basename=`basename $linux`
   dirname=`dirname $linux`