#! /bin/sh

VERSION='0.1.0'
RELEASE=1
PRE=
# PRE="pre$RELEASE"
# ONLYDEV=1

# make website
echo -n "Making website... "

echo -n "MANIFEST "
cat INDEX | perl -ne 'next if /^(dbMan|--)/;  next unless $_;  print;' >MANIFEST

echo -n "install "
cat <<EOF >install
#! /bin/bash

mkdir -p /usr/doc/dbman-$VERSION
EOF
egrep 'install|mkdir' dbman.spec | perl -ne 'next if /^%/; s/\$RPM_BUILD_ROOT//; print;' >>install
grep '%doc' dbman.spec | perl -ne 's/^.*%doc\s+//;  @a = split /\s+/;  print join "",map { "install $_ /usr/doc/dbman-'$VERSION'/$_\n"; } @a;' >>install
chmod 755 install

# TODO
echo -n "TODO "
cat <<EOF >doc/todo.html
<HTML>
<HEAD><TITLE>dbMan - To do list</TITLE></HEAD><BODY BGCOLOR=black TEXT=white LINK=red VLINK=orange ALINK=green>
<CENTER><IMG SRC="dbman.jpg" ALT="dbMan"></CENTER><P>
<BIG><B>I want to do next things into dbMan</B></BIG><P>
EOF
perl -e 'while (<>) { next if /^(dbMan|--)/;  next unless $_;  s/\</&lt;/;  s/\>/&gt;/;  s/\* /<LI>/;  print; }' <TODO >>doc/todo.html
cat <<EOF >>doc/todo.html
<P>
<A HREF="./">Go back to main page</A>
</BODY></HTML>
EOF

# BUGS
echo -n "BUGS "
cat <<EOF >doc/bugs.html
<HTML>
<HEAD><TITLE>dbMan - Known bugs</TITLE></HEAD><BODY BGCOLOR=black TEXT=white LINK=red VLINK=orange ALINK=green>
<CENTER><IMG SRC="dbman.jpg" ALT="dbMan"></CENTER><P>
<BIG><B>Known bugs (please don't bugreport these things)</B></BIG><P>
EOF
perl -e 'while (<>) { next if /^(dbMan|--)/;  next unless $_;  s/\</&lt;/;  s/\>/&gt;/;  s/\* /<LI>/;  print; }' <BUGS >>doc/bugs.html
cat <<EOF >>doc/bugs.html
<P>
<A HREF="./">Go back to main page</A>
</BODY></HTML>
EOF

# Changelog
echo -n "Changelog "
cat <<EOF >doc/changes.html
<HTML>
<HEAD><TITLE>dbMan - Changes</TITLE></HEAD><BODY BGCOLOR=black TEXT=white LINK=red VLINK=orange ALINK=green>
<CENTER><IMG SRC="dbman.jpg" ALT="dbMan"></CENTER><P>
EOF
perl -e 'while (<>) { next if /^(dbMan|--|\*\* Old-releases \*\*)/;  s/\</&lt;/;  s/\>/&gt;/;  s/^(0.*)/<P><BIG><B>$1<\/B><\/BIG><P>/;  s/\t- /<LI>/;  print; }' <Changelog >>doc/changes.html
cat <<EOF >>doc/changes.html
<P>
<A HREF="./">Go back to main page</A>
</BODY></HTML>
EOF

# What's new
echo -n "WHATSNEW "
perl -e 'while (<>) { chomp; next if /^\d/; next unless $_;  last if /Old-releases/; s/^\t//; print; print "\n"; }' <Changelog >WHATSNEW
cat <<EOF >doc/whatsnew.html
<HTML>
<HEAD><TITLE>dbMan - What's new</TITLE></HEAD><BODY BGCOLOR=black TEXT=white LINK=red VLINK=orange ALINK=green>
<CENTER><IMG SRC="dbman.jpg" ALT="dbMan"></CENTER><P>
EOF
perl -e 'while (<>) { next if /^(dbMan|--)/;  s/\</&lt;/;  s/\>/&gt;/;  s/^(0.*)/<P><BIG><B>$1<\/B><\/BIG><P>/;  s/- /<LI>/;  print; }' <WHATSNEW >>doc/whatsnew.html
cat <<EOF >>doc/whatsnew.html
<P>
<A HREF="./">Go back to main page</A>
</BODY></HTML>
EOF

checksums () {
	cat <<EOF >doc/checksums.html
<HTML>
<HEAD><TITLE>dbMan - Checksums</TITLE></HEAD><BODY BGCOLOR=black TEXT=white LINK=red VLINK=orange ALINK=green>
<CENTER><IMG SRC="dbman.jpg" ALT="dbMan"></CENTER><P>
Next values are MD5 checksums for all files related to dbMan (without own checksums files). You can test integrity of all files calling <TT>./test-everything</TT> in dbMan source distribution directory or individually calling <TT>md5sum file</TT> and comparing value with these values.
<P><TABLE BORDER=1>
<TR><TD ALIGN=center><B>filename</B></TD><TD ALIGN=center><B>checksum</B></TD><TD ALIGN=center><B>size</B></TD><TD ALIGN=center><B>version</B></TD></TR>
EOF
	perl -pe 's/(.*)  \.\/(.*)/<TR><TD><TT>&nbsp;$2&nbsp;<\/TT><\/TD><TD><TT>&nbsp;$1&nbsp;<\/TT><\/TD><TD ALIGN=right><TT>&nbsp;**SIZE**&nbsp;<\/TT><\/TD><TD ALIGN=center><TT>&nbsp;**VERSION**&nbsp;<\/TT><\/TD><\/TR>/;  @s = stat($name = $2);  s/\*\*SIZE\*\*/$s[7]/;  $ver = `grep VERSION $name`;  $v = "";  $v = $1 if $ver =~ /\$VERSION = .(\d+\..+?).;/;  s/\*\*VERSION\*\*/$v/;' <CHECKSUMS | sort >>doc/checksums.html
	cat <<EOF >>doc/checksums.html
</TABLE><P>
<A HREF="./">Go back to main page</A>
</BODY></HTML>
EOF
}

# INDEX
echo -n "INDEX "
cat <<EOF >doc/purpose.html
<HTML>
<HEAD><TITLE>dbMan - What is purpose of this file ?</TITLE></HEAD><BODY BGCOLOR=black TEXT=white LINK=red VLINK=orange ALINK=green>
<CENTER><IMG SRC="dbman.jpg" ALT="dbMan"></CENTER><P>
<P><TABLE BORDER=1>
EOF
perl -e 'while (<>) { next if /^(dbMan|---)/;  chomp; next unless $_;  s/(.*?)\s+(.*)/<TR><TD><TT>&nbsp;<A HREF="sd\/$1">$1<\/A>&nbsp;<\/TT><\/TD><TD>&nbsp;$2&nbsp;<\/TD><\/TR>/; print; print "\n"; }' <INDEX | sort >>doc/purpose.html
cat <<EOF >>doc/purpose.html
</TABLE><P>
<A HREF="./">Go back to main page</A>
</BODY></HTML>
EOF

# Checksums
echo -n "Checksums "
checksums

echo

# pre-make distribution steps
echo "Prepare to make distribution..."
rm -rf ../export
mkdir ../export
mkdir ../export/ftp
echo "Checksums..."
./checksum >CHECKSUMS
checksums

if [ ! $ONLYDEV ]; then

	echo "Patch..."
	./make-patch >../export/ftp/patch-$VERSION$PRE
	gzip - <../export/ftp/patch-$VERSION$PRE >../export/ftp/patch-$VERSION$PRE.gz

fi

# make distribution steps
echo "Sources..."
tar cfhvz ../export/ftp/dbman-$VERSION$PRE.tar.gz -C .. dbman-$VERSION/ >/dev/null
ln ../export/ftp/dbman-$VERSION$PRE.tar.gz ../export/ftp/dbman-snapshot.tar.gz

if [ $ONLYDEV ]; then

	# Only snapshot
	rm ../export/ftp/dbman-$VERSION$PRE.tar.gz

else

	# Mini distribution
	echo "Mini distribution..."
	tar cfhvz ../export/ftp/dbman-$VERSION$PRE-mini.tar.gz -T Minidist -C .. dbman-$VERSION/ >/dev/null

	# RedHat distribution
	echo "RedHat RPM..."
	cp ../export/ftp/dbman-$VERSION$PRE.tar.gz ../redhat/SOURCES/
	cp dbman.spec ../redhat/SPECS/dbman-$VERSION-$RELEASE.spec
	cp dbman_icon.gif ../redhat/SOURCES/
	cd ../redhat
	if ! grep "%_topdir `pwd`" ~/.rpmmacros >/dev/null; then
		echo "%_topdir `pwd`" >>~/.rpmmacros
	fi
	rpm -ba --clean --sign --target=noarch SPECS/dbman-$VERSION-$RELEASE.spec 2>&1 | grep 'Wrote' | perl -pe 'BEGIN { $| = 1; } s/^/\t/;'
	cd -
	cp ../redhat/RPMS/noarch/dbman-$VERSION-$RELEASE.noarch.rpm ../export/ftp

fi

# post-make distribution steps
echo "Making export distribution..."
for i in doc/*; do
	if [ ! -d $i ]; then
		cp $i ../export
	fi
done

# making online dbManWeb
echo "Making export online dbManWeb distribution..."
mkdir ../export/online
for i in doc/online/*; do
	cp $i ../export/online/
done

# source driver
echo "Making source driver distribution..."
mkdir ../export/sd
cp -r . ../export/sd

# making export.tgz file
echo "Making dbman-export.tgz file..."
cd ../export
tar cfz ../dbman-export.tgz *
cd -

# show kB sizes for distribution files
echo
./count-dist

