Initial import from FreeBSD RELENG_4:
[games.git] / contrib / libreadline / 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] [-v] version
6 #
7 # SRCDIR defaults to src
8 # MANIFEST defaults to $SRCDIR/MANIFEST
9 #
10
11 SRCDIR=src
12 ROOTNAME=bash
13
14 usage()
15 {
16         echo usage: mkdist [-m manifest] [-s srcdir] [-r rootname] [-v] version 1>&2
17         exit 2
18 }
19
20 vmsg()
21 {
22         if [ -n "$verbose" ]; then
23                 echo mkdist: "$@"
24         fi
25 }
26
27 while getopts m:s:r:v name
28 do
29         case $name in
30         m)      MANIFEST=$OPTARG ;;
31         s)      SRCDIR=$OPTARG ;;
32         r)      ROOTNAME=$OPTARG ;;
33         v)      verbose=yes ;;
34         ?)      usage ;;
35         esac
36 done
37
38 : ${MANIFEST:=$SRCDIR/MANIFEST}
39
40 vmsg using $MANIFEST
41
42 shift $(( $OPTIND - 1 ))
43
44 if [ $# -lt 1 ]; then
45         usage
46 fi
47
48 version=$1
49 newdir=${ROOTNAME}-$version
50
51 vmsg creating distribution for $ROOTNAME version $version in $newdir
52
53 if [ ! -d $newdir ]; then
54         mkdir $newdir || { echo $0: cannot make directory $newdir 1>&2 ; exit 1; }
55 fi
56
57 dirmode=755
58 filmode=644
59
60 while read fname type mode
61 do
62         [ -z "$fname" ] && continue
63
64         case "$fname" in
65         \#*)    continue ;;
66         esac
67
68         case "$type" in
69         d)      mkdir $newdir/$fname ;;
70         f)      cp -p $SRCDIR/$fname $newdir/$fname ;;
71         *)      echo "unknown file type $type" 1>&2 ;;
72         esac
73
74         if [ -n "$mode" ]; then
75                 chmod $mode $newdir/$fname
76         fi
77
78 done < $MANIFEST
79
80 # cut off the `-alpha' in something like `2.0-alpha', leaving just the
81 # numeric version
82 #version=${version%%-*}
83
84 #case "$version" in
85 #*.*.*) vers=${version%.*} ;;
86 #*.*)   vers=${version} ;;
87 #esac
88
89 #echo $vers > $newdir/.distribution
90
91 #case "$version" in
92 #*.*.*) plevel=${version##*.} ;;
93 #*)     plevel=0 ;;
94 #esac
95 #[ -z "$plevel" ] && plevel=0
96 #echo ${plevel} > $newdir/.patchlevel
97
98 vmsg $newdir created
99
100 exit 0