home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / riscbsd / sources / src_tgz / src_tgz~ / src / lib / bumpversion next >
Text File  |  1995-10-13  |  3KB  |  129 lines

  1. #!/bin/sh
  2. #
  3. # Copyright (c) 1993 Christopher G. Demetriou
  4. # All rights reserved.
  5. #
  6. # Redistribution and use in source and binary forms, with or without
  7. # modification, are permitted provided that the following conditions
  8. # are met:
  9. # 1. Redistributions of source code must retain the above copyright
  10. #    notice, this list of conditions and the following disclaimer.
  11. # 2. Redistributions in binary form must reproduce the above copyright
  12. #    notice, this list of conditions and the following disclaimer in the
  13. #    documentation and/or other materials provided with the distribution.
  14. # 3. All advertising materials mentioning features or use of this software
  15. #    must display the following acknowledgement:
  16. #      This product includes software developed by Christopher G. Demetriou.
  17. # 4. The name of the author may not be used to endorse or promote products
  18. #    derived from this software without specific prior written permission
  19. #
  20. # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  21. # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  22. # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  23. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  24. # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  25. # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  26. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  27. # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  28. # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  29. # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  30. #
  31. #    $Id: bumpversion,v 1.3 1994/01/29 01:54:01 jtc Exp $
  32. #
  33.  
  34. PATH=/bin:/usr/bin
  35. export PATH
  36.  
  37. while :
  38.     do case "$1" in
  39.         # -c says to create new shlib_version files
  40.         -c)
  41.             create=TRUE
  42.             shift ;;
  43.  
  44.         # -n sets 'do nothing mode'
  45.         -n)
  46.             donothing=TRUE
  47.             shift ;;
  48.  
  49.         # -m says to bump major number, rather than minor number
  50.         -m)
  51.             bumpmajor=TRUE
  52.             shift ;;
  53.  
  54.         *)
  55.             break ;;
  56.     esac
  57. done
  58.  
  59. if [ $# = 0 ] ; then
  60.     echo "usage: $0 [-c] [-m] [-n] dir ..."
  61.     exit 2
  62. fi
  63.  
  64. TMP=/tmp/bump$$
  65. error=0
  66.  
  67. trap 'rm -f $TMP ; exit 1' 1 2 3 13 15
  68.  
  69. for dir in $@ ; do
  70.     versf=$dir/shlib_version
  71.  
  72.     if [ "X$create" != "X" ] ; then
  73.         if [ ! -d $dir ] ; then
  74.                 echo $0: $dir is not a directory 1>&2
  75.                 error=1
  76.             continue
  77.         fi
  78.         if [ -e $versf ] ; then
  79.                 echo $0: $versf exists\; not replacing 1>&2
  80.                 error=1
  81.             continue
  82.         fi
  83.     else
  84.         if [ ! -e $versf ] ; then
  85.                 echo $0: $versf does not exist 1>&2
  86.                 error=1
  87.             continue
  88.         fi
  89.         if [ ! -f $versf ] ; then
  90.                 echo $0: $versf is not a regular file 1>&2
  91.                 error=1
  92.             continue
  93.         fi
  94.         if [ ! -r $versf ] ; then
  95.                 echo $0: $versf is not readable 1>&2
  96.                 error=1
  97.             continue
  98.         fi
  99.         if [ ! -w $versf ] ; then
  100.                 echo $0: $versf is not a writable 1>&2
  101.                 error=1
  102.             continue
  103.         fi
  104.     
  105.         . $versf
  106.     fi
  107.  
  108.     if [ "X$create" != "X" ] ; then
  109.         nmajor=0
  110.         nminor=0
  111.     elif [ "X$bumpmajor" != "X" ] ; then
  112.         nmajor=`expr $major + 1`
  113.         nminor=0
  114.     else
  115.         nmajor=$major
  116.         nminor=`expr $minor + 1`
  117.     fi
  118.  
  119.     if [ "X$donothing" = "X" ] ; then
  120.         echo major=$nmajor > $TMP
  121.         echo minor=$nminor >> $TMP
  122.         mv $TMP $versf
  123.     else
  124.         echo "$0: $versf -> $nmajor.$nminor"
  125.     fi
  126. done
  127.  
  128. exit $error
  129.