Sync readline/ to version 7.0 alpha
[external/binutils.git] / readline / support / mkdist
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