#! /bin/sh
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted only as authorized by the OpenLDAP
## Public License.
##
## A copy of this license is available in the file LICENSE in the
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.
#
# Make a release
#

#
# This script MUST NOT add files to the export nor modify
# any file in the export, exceptions:
#	make guide.html
#

set -e 		# exit immediately if any errors occur

if test $# != 3 ; then
	echo 'usage: mkrelease REPO RELNAME TAG'
	exit 1
fi

REPO=$1
shift
RELNAME=openldap-$1
shift
TAG=$1
shift

#Linux
#SHA="sha1sum"
#MD="md5sum"
#BSD
#SHA="sha1"
#MD="md5"
#OpenSSL
#SHA="openssl sha1"
SHA3="openssl sha3-512"
#MD="openssl md5"

if test -e $RELNAME ; then
	echo "error: $RELNAME exists"
	exit 1
fi

echo Release: $RELNAME
echo Tag: $TAG

git archive --format=tar --prefix="${RELNAME}/" --remote="${REPO}" "$TAG" |  tar xvf -

if test ! -d $RELNAME ; then
	echo "error: $RELNAME doesn't exists"
	exit 1
fi

if test -e $RELNAME/doc/guide/admin/guide.sdf ; then
	echo "build guide..."
	( cd $RELNAME/doc/guide/admin ; make guide.html )
else
	echo "No guide"
fi

if test -e $RELNAME/libraries/liblunicode/ucdata/uctable.h ; then
	echo "touching uctable.h..."
	touch $RELNAME/libraries/liblunicode/ucdata/uctable.h
fi

if test ! -e $RELNAME/build/version.sh ; then
	echo "No build version"
	OL_STRING="something"
else
	eval `$RELNAME/build/version.sh`
fi

echo "Rolling up $OL_STRING ..."


tar cf $RELNAME.tar $RELNAME
gzip -9 -c $RELNAME.tar > $RELNAME.tgz
#${MD} $RELNAME.tgz > $RELNAME.md5
#${SHA} $RELNAME.tgz > $RELNAME.sha1
${SHA3} $RELNAME.tgz > $RELNAME.sha3-512
rm -f $RELNAME.tar

ls -l $RELNAME.*

echo "Made $OL_STRING as $RELNAME.tgz"
