Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib modernize



details:   https://anonhg.NetBSD.org/src/rev/0c230b3e0497
branches:  trunk
changeset: 784996:0c230b3e0497
user:      christos <christos%NetBSD.org@localhost>
date:      Sun Feb 17 01:20:57 2013 +0000

description:
modernize

diffstat:

 lib/checkver |  226 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 112 insertions(+), 114 deletions(-)

diffs (285 lines):

diff -r caf0022b0aa9 -r 0c230b3e0497 lib/checkver
--- a/lib/checkver      Sun Feb 17 00:36:40 2013 +0000
+++ b/lib/checkver      Sun Feb 17 01:20:57 2013 +0000
@@ -1,5 +1,5 @@
 #!/bin/sh
-#      $NetBSD: checkver,v 1.13 2008/04/30 13:10:50 martin Exp $
+#      $NetBSD: checkver,v 1.14 2013/02/17 01:20:57 christos Exp $
 #
 # Copyright (c) 1998 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -67,18 +67,22 @@
 #
 
 TMP=/tmp/checkver.$$
+PROG="$(basename "$PROG")"
 # Can't trap 11 (SEGV) in the Real Bourne Shell, since it uses it for
 # internal malloc!
 trap "exit 2" 1 2 3 4 5 6 7 8 10 12 13 14 15
 trap "[ -d $TMP ] && rm -rf $TMP" 0
 
 Usage() {
-    echo "Usage: $1 [-q] [-v version_file] -d [installedlibdir [library name]]"
-    echo "       $1 [-q] [-v version_file] -s [setlistdir [library name]]"
-    echo "       $1 [-q] [-v version_file] -f liblistfile [library name]"
-    echo "     $1 is a script that looks for installed libraries with"
-    echo "        versions greater than that in the version file."
-    echo "     For more information, read the comments."
+cat << EOF 1>&2
+Usage: $PROG [-q] [-v version_file] -d [installedlibdir [library name]]
+       $PROG [-q] [-v version_file] -s [setlistdir [library name]]
+       $PROG [-q] [-v version_file] -f liblistfile [library name]
+       $PROG is a script that looks for installed libraries with
+       versions greater than that in the version file.
+       For more information, read the comments.
+EOF
+       exit 1
 }
 
 basedir=/usr/src
@@ -91,144 +95,138 @@
 usedir=0
 usefile=0
 usesets=0
-CWD=`pwd`
-args=`getopt "df:shqv:" "$@"`
-if [ $? -ne 0 ] ; then
-    Usage $0
-    exit 0
+CWD=$(pwd)
+
+fixone() {
+       local instmajor=$(basename $1 | awk 'BEGIN { FS="." } { print $3 }')
+       local instminor=$(basename $1 | awk 'BEGIN { FS="." } { print $4 }')
+       local instteeny=$(basename $1 | awk 'BEGIN { FS="." } { print $5 + 0 }')
+       local ms="The following libraries have versions greater than the source"
+
+       # If they're greater than the source, complain.
+       if [ "0$major" -eq "0$instmajor" ]; then
+               if [ "0$minor" -eq "0$instminor" ]; then
+                       if [ "0$teeny" -lt "0$instteeny" ]; then
+                               if [ $error -eq 0 -a $quiet -eq 0 ]; then
+                                       echo "$ms" 1>&2
+                               fi
+                               echo $1 1>&2
+                               error=1
+                       fi
+               elif [ "0$minor" -lt "0$instminor" ]; then
+                       if [ $error -eq 0 -a $quiet -eq 0 ]; then
+                               echo "$ms" 1>&2
+                       fi
+                       echo $1 1>&2
+                       error=1
+               fi
+       elif [ "0$major" -lt "0$instmajor" ]; then
+               if [ $error -eq 0 -a $quiet -eq 0 ]; then
+                       echo "$ms" 1>&2
+               fi
+               echo $1 1>&2
+               error=1
+       fi
+}
+
+while getopts df:shqv: f; do
+       case $f in
+       d)      usedir=1 
+               if [ $usefile -eq 1 -o $usesets -eq 1 ]; then
+                       Usage
+               fi;;
+       f)      usefile=1; arg1=$OPTARG
+               if [ $usedir -eq 1 -o $usesets -eq 1 ]; then
+                       Usage 
+               fi;;
+       s)      usesets=1 
+               if [ $usedir -eq 1 -o $usefile -eq 1 ]; then
+                       Usage
+               fi;;
+       -v)     shlib_version=$OPTARG;;
+       -q)     quiet=1;;
+       *)      Usage;;
+       esac
+done
+
+shift $(($OPTIND - 1))
+
+if [ $usedir -eq 0 -a $usefile -eq 0 -a $usesets -eq 0 ]; then
+       Usage
 fi
 
-set -- $args
-
-while [ ! -z "$1" ]; do
-    case "$1" in
-       -d) usedir=1 ; shift
-           if [ $usefile -eq 1 -o $usesets -eq 1 ]; then
-               Usage $0 ; exit 2
-           fi;;
-       -f) usefile=1 ; arg1=$2 ; shift ; shift
-           if [ $usedir -eq 1 -o $usesets -eq 1 ]; then
-               Usage $0 ; exit 2
-           fi;;
-       -s) usesets=1 ; shift
-           if [ $usedir -eq 1 -o $usefile -eq 1 ]; then
-               Usage $0 ; exit 2
-           fi;;
-       -v) shlib_version=$2; shift ; shift ;;
-       -h) Usage $0 ; exit 0;;
-       -q) quiet=1 ; shift;;
-       --) shift ; break;;
-    esac
-done
-
-if [ $usedir -eq 0 -a $usefile -eq 0 -a $usesets -eq 0 ] ; then
-    Usage $0 ; exit 2
-fi
-
-if [ $usefile -eq 1 ] ; then
-   LIBLIST="$arg1"
+if [ $usefile -eq 1 ]; then
+       LIBLIST="$arg1"
 else
-   mkdir -m 0700 $TMP
-   if [ $?  != 0 ]; then
-       echo "$0: Unable to create temp directory."
-       exit 2
-   fi
-   LIBLIST=$TMP/libs.lst
+       if ! mkdir -m 0700 $TMP; then
+               echo "$PROG: Unable to create temp directory." 1>&2
+               exit 2
+       fi
+       LIBLIST=$TMP/libs.lst
 fi
 
 # Build list from the installed libraries.
-if [ $usedir -eq 1 ] ; then
-    if [ "X$1" != "X" ] ; then
-       libdir="$1"
-    fi
-    for f in $libdir ; do
-       ls $f/lib*.so.*.*
-    done > $LIBLIST 2> /dev/null
+if [ $usedir -eq 1 ]; then
+       if [ -n "$1" ]; then
+               libdir="$1"
+       fi
+       for f in $libdir; do
+               ls $f/lib*.so.*.*
+       done > $LIBLIST 2> /dev/null
 fi
 
 # Build list from set lists.  Parameter may be either
 # the "lists" directory or the top of the source tree.
-if [ $usesets -eq 1 ] ; then
-    if [ "X$1" != "X" ] ; then
-       setsdir="$1"
-       if [ -d "$setsdir/distrib/sets/lists" ] ; then
-           setsdir="$setsdir/distrib/sets/lists"
+if [ $usesets -eq 1 ]; then
+       if [ -n "$1" ]; then
+               setsdir="$1"
+               if [ -d "$setsdir/distrib/sets/lists" ]; then
+                       setsdir="$setsdir/distrib/sets/lists"
+               fi
        fi
-    fi
-    (cd $setsdir ;
-     cat */[a-z]* | grep '^./usr/lib/lib.*\.so\.[0-9][0-9]*\.[0-9][0-9]*' \
-                 | sort -u > $LIBLIST
-    )
+       (cd $setsdir;
+        cat */[a-z]* |
+        grep '^./usr/lib/lib.*\.so\.[0-9][0-9]*\.[0-9][0-9]*' |
+        sort -u > $LIBLIST)
 fi
 
 #
 # The file $LIBLIST now contains a list of libraries.
 #
-
-if [ "X$2" = "X" ] ; then
-    makefile=$CWD/Makefile
-    libname=`grep '^LIB=' $makefile | sed -e 's/^LIB=[[:space:]]*//'`
+if [ -z "$2" ]; then
+       makefile=$CWD/Makefile
+       libname=$(grep '^LIB=' $makefile | sed -e 's/^LIB=[[:space:]]*//')
 
-    # Assume the library name is the name of the current directory.
-    if [ -z $libname ]; then
-       libname=`basename $CWD`
-    fi
+       # Assume the library name is the name of the current directory.
+       if [ -z "$libname" ]; then
+               libname=$(basename $CWD)
+       fi
 else
-    libname="$2"
+           libname="$2"
 fi
 echo $libname | grep "^lib" 1>&2 2> /dev/null
 if [ $? != 0 ]; then
-    libname="lib$libname"
+       libname="lib$libname"
 fi
 
 
-if [ ! -f $shlib_version ] ; then
-    echo "$0: unable to find $shlib_version"
-    exit 2
+if [ ! -f $shlib_version ]; then
+       echo "$PROG: unable to find $shlib_version" 1>&2
+       exit 2
 fi
 
 # Grab major and minor numbers from the source.
 . $shlib_version
 
-if [ "X$minor" = "X" -o "X$major" = "X" ] ; then
-    echo "$0: $shlib_version doesn't contain the version."
-    exit 2
+if [ -z "$minor" -o -z "$major" ]; then
+       echo "$PROG: $shlib_version doesn't contain the version." 1>&2
+       exit 2
 fi
 
 # Find every shared object library with the same base name.
- for instlib in `grep $libname.so "$LIBLIST" ` ; do
-    # Grab the major and minor from the installed library.
-    instmajor=`basename $instlib | awk 'BEGIN { FS="." } { print $3 } '`
-    instminor=`basename $instlib | awk 'BEGIN { FS="." } { print $4 } '`
-    instteeny=`basename $instlib | awk 'BEGIN { FS="." } { print $5 + 0 } '`
-
-    # If they're greater than the source, complain.
-    if [ "0$major" -eq "0$instmajor" ] ; then
-       if [ "0$minor" -eq "0$instminor" ] ; then
-           if [ "0$teeny" -lt "0$instteeny" ] ; then
-               if [ $error -eq 0 -a $quiet -eq 0 ]; then
-                   echo -n "The following libraries have versions greater"
-                   echo " than the source:"
-               fi
-               echo $instlib > /dev/stderr
-               error=1
-           fi
-        elif [ "0$minor" -lt "0$instminor" ] ; then
-           if [ $error -eq 0 -a $quiet -eq 0 ]; then
-               echo -n "The following libraries have versions greater"
-               echo " than the source:"
-           fi
-           echo $instlib > /dev/stderr
-           error=1
-       fi
-    elif [ "0$major" -lt "0$instmajor" ] ; then
-       if [ $error -eq 0 -a $quiet -eq 0 ] ; then
-           echo -n "The following libraries have versions greater"
-           echo " than the source:"
-       fi
-       echo $instlib > /dev/stderr
-       error=1
-    fi
- done
+for instlib in $(grep $libname.so "$LIBLIST"); do
+       # Grab the major and minor from the installed library.
+       fixone "$instlib"
+done
 
 exit $error



Home | Main Index | Thread Index | Old Index