#!/bin/bash

set -x
set -e

echo
echo "========================================"
echo "Setting up authentication"
echo "----------------------------------------"
(
	cd $KOKORO_ARTIFACTS_DIR
	ls -l

	# Run the GOB cookie daemon to allow cloning from
	# foss-eda-tools.googlesource.com
	git clone https://gerrit.googlesource.com/gcompute-tools \
		   $KOKORO_ARTIFACTS_DIR/gcompute-tools
	$KOKORO_ARTIFACTS_DIR/gcompute-tools/git-cookie-authdaemon
)
echo "----------------------------------------"

cd git
export GIT_CHECKOUTS=$(pwd)
export DOCS_DIR=$GIT_CHECKOUTS/skywater-pdk-docs/docs
export BUILD_DIR=$DOCS_DIR/_build

echo
echo "========================================"
echo "Fixing git for the skywater-pdk docs"
echo "----------------------------------------"
(
	cd skywater-pdk-docs/
	echo "----"
	git remote rm origin
	git remote add origin https://foss-eda-tools.googlesource.com/skywater-pdk-docs.git
	git fetch --unshallow || true
	git fetch --tags
	echo "----"
	git log -n 1
	echo "----"
	git describe --match 'v*'
	echo "----"
)
echo "----------------------------------------"

echo
echo "========================================"
echo "Building the skywater-pdk docs"
echo "----------------------------------------"
(
	cd skywater-pdk-docs/docs/
	make env
	make html
)
echo "----------------------------------------"

echo
echo "========================================"
echo "Publishing skywater-pdk docs to GCS"
echo "----------------------------------------"
(
	export GIT_DESCRIBE=$(cd $GIT_CHECKOUTS/skywater-pdk-docs; git describe --match 'v*')
	gsutil -m cp -Z -L upload.log -R $BUILD_DIR/html gs://skywater-pdk/docs/$GIT_DESCRIBE/
	echo
	echo "Uploaded"
	echo "----"
	cat upload.log
	echo "----"
	echo
	# Create a redirect HTML file
	cat > index.html <<EOF
<!DOCTYPE html>
<html>
   <head>
      <title>Redirect to SKY130 PDK Documentation revision $GIT_DESCRIBE</title>
      <meta http-equiv = "refresh" content = "0; url = '$GIT_DESCRIBE/html/index.html" />
   </head>
   <body>
      <a href="$GIT_DESCRIBE/html/index.html">SKY130 PDK Documentation revision $GIT_DESCRIBE</a>
   </body>
</html>
EOF
	gsutil cp index.html gs://skywater-pdk/docs/
	gsutil setmeta -h "Content-Type:text/html"   -h "Cache-Control: no-cache, max-age=0, stale-while-revalidate=300"   -h "Content-Disposition" gs://skywater-pdk/docs/index.html
)

echo
echo "========================================"
echo "Publishing skywater-pdk docs to output git repo"
echo "----------------------------------------"
(
	echo
	echo "Cloning the repo to deploy..."
	cd $GIT_CHECKOUTS
	git clone https://foss-eda-tools.googlesource.com/skywater-pdk-docs-out.git
	cd skywater-pdk-docs-out

	echo
	echo "Removing old content..."
	rm -rf *

	echo
	echo "Copying new content..."
	cp -a $BUILD_DIR/html/* -t .
	cp -a $BUILD_DIR/html/.nojekyll -t .
	cp -a $BUILD_DIR/html/.buildinfo -t .

	echo
	echo "Adding the content..."
	git add .

	echo
	echo "Committing..."
	export GIT_DESCRIBE=$(cd $GIT_CHECKOUTS/skywater-pdk-docs; git describe --match 'v*')

	GIT_MESSAGE_FILE=/tmp/git-message
	cat > $GIT_MESSAGE_FILE <<EOF
Deploy $GIT_DESCRIBE (build $KOKORO_BUILD_ID)

Build from $KOKORO_GITHUB_COMMIT_URL
\`\`\`
EOF
	(
		cd $GIT_CHECKOUTS/skywater-pdk-docs
		git log -n1 >> $GIT_MESSAGE_FILE
	)
	cat >> $GIT_MESSAGE_FILE <<EOF
\`\`\`
EOF
	echo
	echo
	echo "----------------------------------"
	cat $GIT_MESSAGE_FILE
	echo "----------------------------------"
	echo

	git commit \
		-F $GIT_MESSAGE_FILE \
		--author "Skywater PDK Robot <skywater-pdk@google.com>"

	echo
	echo "Pushing..."
	git push origin
)
echo "----------------------------------------"
