r2195: *** empty log message ***
[clsql.git] / debian / make-upstream.sh
1 #!/bin/bash 
2 #
3 # Creates upstream packages
4 # Programmer: Kevin Rosenberg
5
6 set -e # abort on error
7
8 usage () {
9     progname="`basename \"$0\"`"
10
11     cat >&2 <<EOF
12 Usage: $progname [options]
13 Creates upstream archives
14 Options:
15   -c   Commit and tag CVS tree with current version numbers
16   -t   Tag CVS tree with current version numbers
17   -f   Force creation of upstream archive, even if exists'
18   -h   Print this brief help
19 EOF
20 }
21
22 opt_force=0
23
24 # Command line
25 while [ $# != 0 ]; do
26     value="`echo x\"$1\" | sed -e 's/^x-.//'`"
27     case "$1" in
28         -h)  usage; exit 0           ;;
29         -c)  opt_commit=1; opt_tag=1 ;;
30         -t)  opt_tag=1               ;;
31         -f)  opt_force=1             ;;
32          *)  usage; exit 0           ;;
33     esac
34     shift
35 done
36
37 PKG=clsql
38 DEBPKG=cl-sql
39
40 PACKAGE_DIR=/usr/local/src/Packages/${DEBPKG}
41 WORK_DIR=/usr/local/src/Work/${PKG}
42 DISTDIR=${PKG}-${VERSION}
43 DEBDIR=${DEBPKG}-${VERSION}
44
45 VERSION=`sed -n -e "s/${DEBPKG} (\(.*\)-[0-9.]).*/\1/p" < ${WORK_DIR}/debian/changelog  |head -1`
46 if [ -z "${VERSION}" ]; then
47   echo "Can't find Debian changelog"
48   exit 1
49 fi
50
51 if [ ! -z ${opt_commit} ]; then
52     cvs commit -m 'Auto commit for Debian build'
53 fi
54
55 if [ ! -z ${opt_tag} ]; then
56     UPSTREAM_TAG=upstream_version_`echo ${VERSION} | tr . _`
57     echo "(Re-)tagging with Upstream tag '${UPSTREAM_TAG}'"
58     cvs -q rtag -d $UPSTREAM_TAG $PKG > /dev/null
59     cvs -q tag -F $UPSTREAM_TAG > /dev/null
60
61 fi
62
63 if [ -f ${PACKAGE_DIR}/${DEBPKG}_${VERSION}.orig.tar.gz ]; then
64   echo "File ${PACKAGE_DIR}/${DEBPKG}_${VERSION}.orig.tar.gz already exists."
65   echo -n "Are you sure that you want to create a new upstream archive? (y/N): "
66   read answer
67   case $answer in
68       [Yy]*) nop= ;;
69       *) echo "Not building"
70          exit 1
71           ;;
72   esac
73 fi
74
75 # Prepare for archive
76 cd ${WORK_DIR}/..
77 rm -f ${PKG}_${VERSION}.tar.gz ${DEBPKG}_${VERSION}.orig.tar.gz
78 rm -rf ${DISTDIR} ${DEBDIR} ${DISTDIR}.zip
79 cp -a ${WORK_DIR} ${DISTDIR}
80
81 echo "Cleaning distribution directory ${DISTDIR}"
82 cd ${DISTDIR}
83 rm -f debian/upload.sh debian/make-debian.sh debian/make-upstream.sh debian/cvsbp-prepare.sh test-suite/test.config
84 rm -f `find . -type f -name "*.so" -or -name "*.o"`
85 rm -f `find . -type f -name .cvsignore`
86 rm -rf `find . -type d -name CVS -or -name .bin`
87 rm -f `find . -type f -name '*~' -or -name '.#*'  -or -name '#*#' -or -name ".*~"`
88 rm -f `find doc -type f -name \*.tex -or -name \*.aux -or \
89   -name \*.log -or -name \*.out -or -name \*.dvi`
90 cd ..
91
92 echo "Creating upstream archives"
93 rm -rf ${DISTDIR}/debian
94 GZIP=-9 tar czf ${DISTDIR}.tar.gz ${DISTDIR}
95
96 cp -a ${DISTDIR} ${DEBDIR}
97 GZIP=-9 tar czf ${DEBPKG}_${VERSION}.orig.tar.gz ${DEBDIR}
98
99 unix2dos `find ${DISTDIR} -type f -name \*.cl -or -name \*.list -or \
100     -name \*.system -or -name Makefile -or -name ChangeLog -or \
101     -name COPYRIGHT -or -name TODO -or -name README -or -name INSTALL -or \
102     -name NEWS -or -name \*.sgml -or -name COPYING\* -or -name catalog`
103 zip -rq ${DISTDIR}.zip ${DISTDIR}
104
105 cp -a ${WORK_DIR}/debian ${DEBDIR}
106 rm -f ${DEBDIR}/debian/.cvsignore 
107 rm -rf ${DEBDIR}/debian/CVS
108
109 rm -rf ${DISTDIR} ${DEBDIR}
110
111 echo "Moving upstream archives to ${PACKAGE_DIR}"
112 mkdir -p /usr/local/src/Packages/${DEBPKG}
113 rm -f ${PACKAGE_DIR}/${DISTDIR}.zip ${PACKAGE_DIR}/${DEBPKG}_${VERSION}.orig.tar.gz
114 mv ${DISTDIR}.zip ${DEBPKG}_${VERSION}.orig.tar.gz ${DISTDIR}.tar.gz ${PACKAGE_DIR}
115
116 cd ${WORK_DIR}
117 exit 0