#!/bin/bash

# Fail when a command fails
set -e

# Ensure the script is running from the top level directory
cd "$(dirname -- "$0")/.."

WIKIDIR=../selinux.wiki

if ! [ -d "$WIKIDIR" ]; then
	git clone git@github.com:SELinuxProject/selinux.wiki.git "$WIKIDIR"
fi

RELEASE_TAG="$(cat VERSION)"
DEST="releases/$RELEASE_TAG"
DIRS=(
	checkpolicy
	libselinux
	libsemanage
	libsepol
	mcstrans
	policycoreutils
	restorecond
	secilc
	selinux-dbus
	selinux-gui
	selinux-python
	selinux-sandbox
	semodule-utils
)

if git rev-parse "$RELEASE_TAG" &> /dev/null ; then
	echo "Warning: tag $RELEASE_TAG already exists"
else
	git tag -a "$RELEASE_TAG" -m "Release $RELEASE_TAG"
fi

rm -rf "$DEST"
mkdir -p "$DEST"

for COMPONENT in "${DIRS[@]}"; do
	DIR="${COMPONENT#selinux-}"
	VERS="$(cat "$DIR/VERSION")"
	TAG="$COMPONENT-$VERS"
	if git rev-parse "$TAG" &> /dev/null ; then
		echo "Warning: tag $TAG already exists"
	else
		git tag "$TAG" > /dev/null
	fi
	git -C "$DIR" archive -o "../$DEST/$TAG.tar.gz" --prefix="$TAG/" "$TAG"
	gpg -b -a "../$DEST/$TAG.tar.gz"
done

git archive -o "$DEST/selinux-${RELEASE_TAG}.tar.gz" --prefix="selinux-${RELEASE_TAG}/" "${RELEASE_TAG}"

echo "Add the following to the $WIKIDIR/Releases.md wiki page:"

echo ""

echo "## Release $RELEASE_TAG"

echo ""

echo "[Release Notes](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/RELEASE-$RELEASE_TAG.txt)"
echo ""
echo "[full log](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/log-$RELEASE_TAG.txt)"
echo ""
echo "[short log](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/shortlog-$RELEASE_TAG.txt)"
echo ""

for COMPONENT in "${DIRS[@]}"; do
	DIR="${COMPONENT#selinux-}"
	VERS="$(cat "$DIR/VERSION")"
	TAG="$COMPONENT-$VERS"
	tarball="$TAG.tar.gz"
	echo -n "[$tarball](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/$tarball) "
	sha256sum "$DEST/$tarball" | cut -d " " -f 1
	echo ""
done

echo "### Source repository snapshot"

echo ""

echo -n "[selinux-${RELEASE_TAG}.tar.gz](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/selinux-${RELEASE_TAG}.tar.gz) "
sha256sum "$DEST/selinux-${RELEASE_TAG}.tar.gz" | cut -d " " -f 1
echo ""

echo "And then run:"
echo "  cd $WIKIDIR"
echo "  git commit  -m \"Release $RELEASE_TAG\" -a -s"
echo "  git push"

echo ""
echo "Push the release and its tags to git via:"
echo "  git push"
echo "  git push --tags"

echo ""
echo "Create a new release from the latest tag on https://github.com/SELinuxProject/selinux/tags"

echo ""
echo "Add files from releases/$RELEASE_TAG as assets to the new github release"
