Annotation of embedaddon/readline/support/mkdist, revision 1.1

1.1     ! misho       1: #! /bin/bash -
        !             2: #
        !             3: # mkdist - make a distribution directory from a master manifest file
        !             4: #
        !             5: # usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-t] [-v] version
        !             6: #
        !             7: # SRCDIR defaults to src
        !             8: # MANIFEST defaults to $SRCDIR/MANIFEST
        !             9: #
        !            10: # Chet Ramey
        !            11: # chet@po.cwru.edu
        !            12: 
        !            13: # Copyright (C) 1996-2002 Free Software Foundation, Inc.
        !            14: #
        !            15: #   This program is free software: you can redistribute it and/or modify
        !            16: #   it under the terms of the GNU General Public License as published by
        !            17: #   the Free Software Foundation, either version 3 of the License, or
        !            18: #   (at your option) any later version.
        !            19: #
        !            20: #   This program is distributed in the hope that it will be useful,
        !            21: #   but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            22: #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            23: #   GNU General Public License for more details.
        !            24: #
        !            25: #   You should have received a copy of the GNU General Public License
        !            26: #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
        !            27: #
        !            28: 
        !            29: SRCDIR=src
        !            30: ROOTNAME=bash
        !            31: 
        !            32: usage()
        !            33: {
        !            34:        echo usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-t] [-v] version 1>&2
        !            35:        exit 2
        !            36: }
        !            37: 
        !            38: vmsg()
        !            39: {
        !            40:        if [ -n "$verbose" ]; then
        !            41:                echo mkdist: "$@"
        !            42:        fi
        !            43: }
        !            44: 
        !            45: while getopts m:s:r:tv name
        !            46: do
        !            47:        case $name in
        !            48:        m)      MANIFEST=$OPTARG ;;
        !            49:        s)      SRCDIR=$OPTARG ;;
        !            50:        r)      ROOTNAME=$OPTARG ;;
        !            51:        t)      maketar=yes ;;
        !            52:        v)      verbose=yes ;;
        !            53:        ?)      usage ;;
        !            54:        esac
        !            55: done
        !            56: 
        !            57: : ${MANIFEST:=$SRCDIR/MANIFEST}
        !            58: 
        !            59: vmsg using $MANIFEST
        !            60: 
        !            61: shift $(( $OPTIND - 1 ))
        !            62: 
        !            63: if [ $# -lt 1 ]; then
        !            64:        usage
        !            65: fi
        !            66: 
        !            67: version=$1
        !            68: newdir=${ROOTNAME}-$version
        !            69: 
        !            70: tarfile=${newdir}.tar
        !            71: 
        !            72: vmsg creating distribution for $ROOTNAME version $version in $newdir
        !            73: 
        !            74: if [ ! -d $newdir ]; then
        !            75:        mkdir $newdir || { echo $0: cannot make directory $newdir 1>&2 ; exit 1; }
        !            76: fi
        !            77: 
        !            78: dirmode=755
        !            79: filmode=644
        !            80: 
        !            81: while read fname type mode
        !            82: do
        !            83:        [ -z "$fname" ] && continue
        !            84: 
        !            85:        case "$fname" in
        !            86:        \#*)    continue ;;
        !            87:        esac
        !            88: 
        !            89:        case "$type" in
        !            90:        d)      mkdir $newdir/$fname ;;
        !            91:        f)      cp -p $SRCDIR/$fname $newdir/$fname ;;
        !            92:        s)      ln -s $mode $newdir/$fname ; mode= ;;           # symlink
        !            93:        l)      ln $mode $newdir/$fname ; mode= ;;              # hard link
        !            94:        *)      echo "unknown file type $type" 1>&2 ;;
        !            95:        esac
        !            96: 
        !            97:        if [ -n "$mode" ]; then
        !            98:                chmod $mode $newdir/$fname
        !            99:        fi
        !           100: 
        !           101: done < $MANIFEST
        !           102: 
        !           103: # cut off the `-alpha' in something like `2.0-alpha', leaving just the
        !           104: # numeric version
        !           105: #version=${version%%-*}
        !           106: 
        !           107: #case "$version" in
        !           108: #*.*.*)        vers=${version%.*} ;;
        !           109: #*.*)  vers=${version} ;;
        !           110: #esac
        !           111: 
        !           112: #echo $vers > $newdir/.distribution
        !           113: 
        !           114: #case "$version" in
        !           115: #*.*.*)        plevel=${version##*.} ;;
        !           116: #*)    plevel=0 ;;
        !           117: #esac
        !           118: #[ -z "$plevel" ] && plevel=0
        !           119: #echo ${plevel} > $newdir/.patchlevel
        !           120: 
        !           121: vmsg $newdir created
        !           122: 
        !           123: if [ -n "$maketar" ]; then
        !           124:        tar cf ${tarfile} $newdir
        !           125:        gzip $tarfile
        !           126:        vmsg ${tarfile}.gz created
        !           127: fi
        !           128: 
        !           129: exit 0

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>