#!/bin/sh # $NetBSD: bumpversion,v 1.10 2003/07/26 19:24:24 salo Exp $ # # Copyright (c) 1993 Christopher G. Demetriou # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed for the # NetBSD Project. See http://www.NetBSD.org/ for # information about NetBSD. # 4. The name of the author may not be used to endorse or promote products # derived from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # <> while : do case "$1" in # -c says to create new shlib_version files -c) create=TRUE shift ;; # -n sets 'do nothing mode' -n) donothing=TRUE shift ;; # -m says to bump major number, rather than minor number -m) bumpmajor=TRUE shift ;; *) break ;; esac done if [ $# = 0 ] ; then echo "usage: $0 [-c] [-m] [-n] dir ..." exit 2 fi TMP=/tmp/bump$$ error=0 trap 'rm -f $TMP ; exit 1' 1 2 3 13 15 for dir in $@ ; do versf=$dir/shlib_version if [ "X$create" != "X" ] ; then if [ ! -d $dir ] ; then echo $0: $dir is not a directory 1>&2 error=1 continue fi if [ -e $versf ] ; then echo $0: $versf exists\; not replacing 1>&2 error=1 continue fi else if [ ! -e $versf ] ; then echo $0: $versf does not exist 1>&2 error=1 continue fi if [ ! -f $versf ] ; then echo $0: $versf is not a regular file 1>&2 error=1 continue fi if [ ! -r $versf ] ; then echo $0: $versf is not readable 1>&2 error=1 continue fi if [ ! -w $versf ] ; then echo $0: $versf is not a writable 1>&2 error=1 continue fi . $versf fi if [ "X$create" != "X" ] ; then nmajor=0 nminor=0 elif [ "X$bumpmajor" != "X" ] ; then nmajor=`expr $major + 1` nminor=0 else nmajor=$major nminor=`expr $minor + 1` fi if [ "X$donothing" = "X" ] ; then echo major=$nmajor > $TMP echo minor=$nminor >> $TMP mv $TMP $versf else echo "$0: $versf -> $nmajor.$nminor" fi done exit $error