#!/bin/sh


function build_slackware ()
{
    cp /usr/src/redhat/SOURCES/$1.tar.gz /slackware/slackware/usr/src/
    (
	cd /slackware/slackware || {
	    echo "cannot cd to slackware/slackware"
	    exit 1
	}
	chroot /slackware/slackware bash -c "\
echo '----- untaring source for libc5 build' ; \
cd /usr/src ; \
rm -Rf $1 ; \
tar -xzf $1.tar.gz || (echo untar failed ; exit 1 ) ; \
cd $1 || (echo cd $1 ; exit 1 ) ; \
echo '----- running CFLAGS=-O2 -fomit-frame-pointer -s ./configure --prefix=/usr' ; \
CFLAGS='-O2 -fomit-frame-pointer -s' ./configure --prefix=/usr > /dev/null \
	|| (echo build failed ; exit 1 ) ; \
echo '----- running make' ; \
make > /dev/null \
	|| (echo build failed ; exit 1 ) ; \
echo '----- running make install' ; \
make install > /dev/null \
	|| (echo build failed ; exit 1 ) ; \
echo '----- running make-binary-tar.sh cooledit $2' ; \
make-binary-tar.sh cooledit $2 ; \
"
    )
}


TAR_DIRECTORY=/home/current/cooledit-dist

if [ "$1" = "" -o "$2" = "" ] ; then
    echo Usage: ./make-dist oldversion newversion
    exit 1
fi

OLD_MAJOR=`echo $1 | sed -e 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\)/\1/'`
OLD_MINOR=`echo $1 | sed -e 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\)/\2/'`
OLD_PATCH=`echo $1 | sed -e 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\)/\3/'`

MAJOR=`echo $2 | sed -e 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\)/\1/'`
MINOR=`echo $2 | sed -e 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\)/\2/'`
PATCH=`echo $2 | sed -e 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\)/\3/'`

#OLD_MAJOR=`cat $TAR_DIRECTORY/major`
#OLD_MINOR=`cat $TAR_DIRECTORY/minor`
#OLD_PATCH=`cat $TAR_DIRECTORY/patch`

# let PATCH=0
# let MINOR=0
# let MAJOR=$OLD_MAJOR+1

# let PATCH=0
# let MINOR=$OLD_MINOR+1
# let MAJOR=$OLD_MAJOR

#let PATCH=$OLD_PATCH+1
#let MINOR=$OLD_MINOR
#let MAJOR=$OLD_MAJOR

VERSION=$MAJOR.$MINOR.$PATCH
OLD_VERSION=$OLD_MAJOR.$OLD_MINOR.$OLD_PATCH

SVERSION=$MAJOR$MINOR$PATCH

FTP_DIR=/home/ftp/pub

TEMP_FILE=$TAR_DIRECTORY/temp

DIST_NAME=cooledit-$VERSION
DIST_DIRECTORY=/home/current/cooledit-dist/$DIST_NAME
OLD_DIST_NAME=cooledit-$OLD_VERSION
OLD_DIST_DIRECTORY=/home/current/cooledit-dist/$OLD_DIST_NAME
SRC_DIRECTORY=/home/current/cooledit-src

echo Now creating distribution version $VERSION

# create directories
rm -rf $DIST_DIRECTORY
cd $OLD_DIST_DIRECTORY/
make distclean 2>&1 1>/dev/null

mkdir $DIST_DIRECTORY
mkdir $DIST_DIRECTORY/bitmap
mkdir $DIST_DIRECTORY/cursor
mkdir $DIST_DIRECTORY/editor
mkdir $DIST_DIRECTORY/editor/swig
mkdir $DIST_DIRECTORY/lib
mkdir $DIST_DIRECTORY/icon
mkdir $DIST_DIRECTORY/intl
mkdir $DIST_DIRECTORY/man
mkdir $DIST_DIRECTORY/pixmap
mkdir $DIST_DIRECTORY/po
mkdir $DIST_DIRECTORY/rxvt
mkdir $DIST_DIRECTORY/widget
mkdir $DIST_DIRECTORY/syntax

find $DIST_DIRECTORY -type d | xargs chmod 0777
chmod 0777 $DIST_DIRECTORY

TODAY=`date '+%e %B %Y'`
TODAY=`echo $TODAY | sed 's/\ /\\\ /g'`

STODAY=`date '+%d%b%y' | tr 'a-z' 'A-Z'`
STODAY=`echo $STODAY | sed 's/\ /\\\ /g'`

SCMD=s/r_VERSION_r/$VERSION/g
DCMD=s/r_DATE_r/$TODAY/g
TCMD=s/r_SDATE_r/$STODAY/g


# create README file
cat $SRC_DIRECTORY/readme | sed $SCMD | sed "$DCMD" \
> $TEMP_FILE

grep -h '\.SH ' $SRC_DIRECTORY/man/cooledit.1 | sed 's/\.SH//g' | grep -h -v -n '@@@@' >> $TEMP_FILE

echo -e '\n\n' >> $TEMP_FILE
cat $SRC_DIRECTORY/man/cooledit.1 | sed $SCMD | sed "$DCMD" | \
nroff -Tascii -mandoc - | ul -t unknown >> $TEMP_FILE

cp $TEMP_FILE $DIST_DIRECTORY/README

(echo -e "This is a complete list of hint messages displayed on the title bar\n\n"
cat $SRC_DIRECTORY/editor/cooledit.c | sed -e '/HINTSTART/,/HINTEND/!D' | \
grep gettext_noop | sed -e 's/^.*gettext_noop[(]["]\(.*\)["][)].*$/\1/' | nl ) \
    > $DIST_DIRECTORY/HINTS

# copy top level directory

TOP_LEVEL_FILES="0install-quick ABOUT-NLS AUTHORS BUGS COPYING ChangeLog NEWS \
	TODO INTERNATIONAL MAILING_LIST acconfig.h aclocal.m4 config.guess \
	config.h.in config.sub global.h install-sh mkinstalldirs \
	stamp-h.in ltconfig ltmain.sh missing make-dist make-binary-tar.sh"

for f in $TOP_LEVEL_FILES ; do
	cp $SRC_DIRECTORY/$f $DIST_DIRECTORY/$f ;
done


# copy makefile
cp $SRC_DIRECTORY/Makefile.am $DIST_DIRECTORY/Makefile.am
cp $SRC_DIRECTORY/editor/Makefile.am $DIST_DIRECTORY/editor/Makefile.am
cp $SRC_DIRECTORY/editor/swig/Makefile $DIST_DIRECTORY/editor/swig/Makefile
cp $SRC_DIRECTORY/lib/Makefile.am $DIST_DIRECTORY/lib/Makefile.am
cp $SRC_DIRECTORY/icon/Makefile.am $DIST_DIRECTORY/icon/Makefile.am
cp $SRC_DIRECTORY/man/Makefile.am $DIST_DIRECTORY/man/Makefile.am
cp $SRC_DIRECTORY/rxvt/Makefile.am $DIST_DIRECTORY/rxvt/Makefile.am
cp $SRC_DIRECTORY/widget/Makefile.am $DIST_DIRECTORY/widget/Makefile.am

# cp $SRC_DIRECTORY/man/syntax $DIST_DIRECTORY/man/syntax

# set version number
for f in cooledit.spec cooledit.lsm coolicon.lsm coolman.lsm man/coolman.1 \
		man/smalledit.1 man/cooledit.1 man/coolicon.1 configure.in \
		pixmap/modify-xinitrc PROGRAMMING FAQ VERSION INSTALL cooledit.gif cooledit_16x16.xpm cooledit_32x32.xpm ; do
	cat $SRC_DIRECTORY/$f | sed -e "$SCMD" -e "$DCMD" -e "$TCMD" > \
	$DIST_DIRECTORY/$f ;
done


# copy sources
cp $SRC_DIRECTORY/widget/*.[ch] $DIST_DIRECTORY/widget/
cp $SRC_DIRECTORY/rxvt/*.[ch] $DIST_DIRECTORY/rxvt/
cp $SRC_DIRECTORY/rxvt/README* $DIST_DIRECTORY/rxvt/
cp $SRC_DIRECTORY/editor/*.[ch] $DIST_DIRECTORY/editor/
cp $SRC_DIRECTORY/editor/cooledit-gdb $DIST_DIRECTORY/editor/
cp $SRC_DIRECTORY/editor/coolproject $DIST_DIRECTORY/editor/
cp $SRC_DIRECTORY/editor/swig/*.i $DIST_DIRECTORY/editor/swig/
cp $SRC_DIRECTORY/lib/*.py $DIST_DIRECTORY/lib/
cp $SRC_DIRECTORY/icon/*.[ch] $DIST_DIRECTORY/icon/
cp $SRC_DIRECTORY/install-sh $DIST_DIRECTORY/editor/install-sh
cp $SRC_DIRECTORY/install-sh $DIST_DIRECTORY/icon/install-sh
cp $SRC_DIRECTORY/install-sh $DIST_DIRECTORY/man/install-sh
cp $SRC_DIRECTORY/install-sh $DIST_DIRECTORY/widget/install-sh
cp $SRC_DIRECTORY/install-sh $DIST_DIRECTORY/rxvt/install-sh
cp $SRC_DIRECTORY/cursor/* $DIST_DIRECTORY/cursor/
cp $SRC_DIRECTORY/bitmap/*.bitmap $DIST_DIRECTORY/bitmap/
cp $SRC_DIRECTORY/pixmap/* $DIST_DIRECTORY/pixmap/ ; rm $DIST_DIRECTORY/pixmap/Makefile
cp $SRC_DIRECTORY/syntax/*.syntax $SRC_DIRECTORY/syntax/Makefile.* $DIST_DIRECTORY/syntax/

INTL="ChangeLog Makefile.in VERSION bindtextdom.c cat-compat.c dcgettext.c dgettext.c \
	explodename.c finddomain.c gettext.c gettext.h gettextP.h hash-string.h \
	install-sh intl-compat.c l10nflist.c libgettext.h linux-msg.sed loadinfo.h \
	loadmsgcat.c localealias.c po2tbl.sed.in textdomain.c xopen-msg.sed intlh.inst.in"
for f in $INTL ; do
    cp $SRC_DIRECTORY/intl/$f $DIST_DIRECTORY/intl/ ;
done

PO="Makefile.in.in POTFILES.in cat-id-tbl.c cooledit.pot install-sh \
	msgfmt.all msgmerge.all stamp-cat-id"
for f in $PO ; do
    cp $SRC_DIRECTORY/po/$f $DIST_DIRECTORY/po/ ;
done
cp $SRC_DIRECTORY/po/*.po $DIST_DIRECTORY/po/ ;
cp $SRC_DIRECTORY/po/*.gmo $DIST_DIRECTORY/po/ ;

# create Makefiles, the configure script and the headers
cd $DIST_DIRECTORY/

aclocal
automake --gnu
autoconf
autoheader

# force `use included getttext':
cp configure configure.old
cat configure.old | sed -e 's/nls_cv_force_use_gnu_gettext=no/nls_cv_force_use_gnu_gettext=yes/g' > configure
rm -f configure.old

# edit out '&& $(AUTOMAKE)' and the like
MAKEFILE_INS="Makefile.in editor/Makefile.in icon/Makefile.in man/Makefile.in widget/Makefile.in rxvt/Makefile.in"

for f in $MAKEFILE_INS ; do
	cat $DIST_DIRECTORY/$f | \
	    sed -e 's/\&\&\ \$.AUTO.*$//g' -e 's/\&\&\ \$.ACLOCAL.*$//g' > \
	    $TEMP_FILE ;
	cp $TEMP_FILE $DIST_DIRECTORY/$f ;
done

# set permissions
chmod -R 0666 $DIST_DIRECTORY
chown -R root:root $DIST_DIRECTORY

EXECUTABLES="bitmap editor cursor widget rxvt po intl 0install-quick config.guess \
	config.sub configure install-sh mkinstalldirs missing pixmap/modify-xinitrc \
	ltconfig widget/install-sh rxvt/install-sh po/install-sh intl/install-sh \
	editor/install-sh icon/install-sh man/install-sh po/msgfmt.all \
	po/msgmerge.all editor/cooledit-gdb editor/coolproject"

for f in $EXECUTABLES ; do
	chmod 0777 $DIST_DIRECTORY/$f ;
done

# get the tar file size and update the LSM file.
cd $DIST_DIRECTORY
cd ..
find ./$DIST_NAME -type d | xargs chmod a+x
tar -czf $TAR_DIRECTORY/cooledit-$VERSION.tar.gz ./$DIST_NAME
# ls -s seems to add on 4kB -- wierd ?!?!?!
ls -l $TAR_DIRECTORY/cooledit-$VERSION.tar.gz | sed 's/[0-9][0-9][0-9][0-9][0-9]*/\
&\
/g' | sed '$D' | sed '1D' \
> $TEMP_FILE
let SIZE=`cat $TEMP_FILE`
let SIZE=$SIZE/1024
cat $DIST_DIRECTORY/cooledit.lsm \
| sed "s/[0-9][0-9][0-9]*kB\ cooledit\-/${SIZE}kB\ cooledit\-/g" \
> $TEMP_FILE
cp $TEMP_FILE ./cooledit.lsm
cp $TEMP_FILE $DIST_DIRECTORY/cooledit.lsm
rm $TAR_DIRECTORY/cooledit-$VERSION.tar.gz


# pack up the distribution
cd $DIST_DIRECTORY
cd ..
tar -czf $TAR_DIRECTORY/cooledit-$VERSION.tar.gz ./$DIST_NAME
cp $TAR_DIRECTORY/cooledit-$VERSION.tar.gz /home/ftp/pub/cooledit/
#cp $TAR_DIRECTORY/cooledit-$VERSION.tar.gz $TAR_DIRECTORY/coole$SVERSION.tgz

cp $TAR_DIRECTORY/cooledit-$VERSION.tar.gz $FTP_DIR/
cp $TAR_DIRECTORY/cooledit-$VERSION.tar.gz /usr/src/redhat/SOURCES/

cp $DIST_DIRECTORY/cooledit.lsm $TAR_DIRECTORY/
cp $DIST_DIRECTORY/cooledit.lsm $FTP_DIR/

cd $TAR_DIRECTORY
diff -u --recursive --new-file ./$OLD_DIST_NAME ./$DIST_NAME \
| grep -v 'Only in \.\/cooledit\-'                 \
> ./patch-$OLD_VERSION-$VERSION

grep 'No newline at end of file' $TAR_DIRECTORY/patch-$OLD_VERSION-$VERSION

rm -f ./patch-$OLD_VERSION-$VERSION.gz ./patch-$OLD_VERSION-$VERSION.bz2
bzip2 ./patch-$OLD_VERSION-$VERSION
douuencode ./patch-$OLD_VERSION-$VERSION.bz2 ./patch$PATCH.uu

echo $PATCH > $TAR_DIRECTORY/patch
echo $MINOR > $TAR_DIRECTORY/minor
echo $MAJOR > $TAR_DIRECTORY/major
rm -f $TAR_DIRECTORY/cooledit-latest
ln -s $DIST_DIRECTORY $TAR_DIRECTORY/cooledit-latest

rm $TEMP_FILE

cp $DIST_DIRECTORY/cooledit.spec /usr/src/redhat/SPECS/
cp $DIST_DIRECTORY/cooledit.gif /usr/src/redhat/SOURCES/

echo "building rpm"
(
    rm -f /usr/src/redhat/RPMS/i386/cooledit-$VERSION-1.i386.rpm
    cd /usr/src/redhat/SPECS
    rpm -ba --sign cooledit.spec > /dev/null
) || exit 0

echo "converting to deb, sl, tgz"
rm -Rf $TAR_DIRECTORY/packages/$VERSION >& /dev/null
mkdir -p $TAR_DIRECTORY/packages/$VERSION
cp /usr/src/redhat/RPMS/i386/cooledit-$VERSION-1.i386.rpm $TAR_DIRECTORY/packages/$VERSION/

(
    cd $TAR_DIRECTORY/packages/$VERSION/
    alien -d       cooledit-$VERSION-1.i386.rpm
    alien -t       cooledit-$VERSION-1.i386.rpm
    alien --to-slp cooledit-$VERSION-1.i386.rpm
)

( cd $SRC_DIRECTORY && ./make-web-pages.sh $DIST_DIRECTORY )

exit

./make-dist-copy $OLD_VERSION $VERSION

