3 # Copyright 2009-2010 Yorba Foundation
5 # This software is licensed under the GNU LGPL (version 2.1 or later).
6 # See the COPYING file in this distribution.
8 # vercmp <major.minor.revision> <minimum major.minor.revision>
10 # Returns 0 if queried version is greater than or equal to second, 1 otherwise.
11 # Set VERBOSE environment variable for somewhat useful output.
14 # This is an ultra-naive implementation with just enough error-checking.
17 echo 'usage: vercmp <major.minor.revision> <minimum major.minor.revision>'
28 if [ $1 ] && [ $1 -eq $1 2> /dev/null ] && [ $1 -ge 0 ]
39 # check_range name number min-number
43 verbose $1 large enough.
47 verbose $1 not large enough
59 # Check number of arguments
65 # Parse arguments into integers
66 major=`echo $1 | awk -F. '{print $1}'`
67 minor=`echo $1 | awk -F. '{print $2}'`
68 revision=`echo $1 | awk -F. '{print $3}'`
70 min_major=`echo $2 | awk -F. '{print $1}'`
71 min_minor=`echo $2 | awk -F. '{print $2}'`
72 min_revision=`echo $2 | awk -F. '{print $3}'`
74 # Verify they're all positive integers
75 verify_cardinal "$major" "$minor" "$revision" "$min_major" "$min_minor" "$min_revision"
77 verbose Comparing $major.$minor.$revision against $min_major.$min_minor.$min_revision
79 # check version numbers in order of importance
80 check_range "Major" $major $min_major
81 check_range "Minor" $minor $min_minor
82 check_range "Revision" $revision $min_revision