#!/bin/bash -ex

# publish-docs.sh
#
# This sccript is used to publish the VPP User documents to
# the FD.io Site.
#
# Arguments:
#
# $1: The main site repo user name
# $2: The release branch name for example 1908, 1904 etc.

# Some basic checks
if [ ! -d "docs" ]; then
  echo "This script is meant to be run from the root directory."
  exit 1;
fi

if [ "$#" -ne 2 ]; then
    echo "Please specify the site username and branch."
    exit 1;
fi

# Get the workspace root
WS_ROOT=$PWD

# Get the VPP branch and username
SITE_USERNAME=$1
VPP_BRANCH=$2

#Build the docs
make docs-clean
make docs-venv
make docs

# Clone the site repo
rm -fr site
rm -fr sphinx_env
git clone ssh://git@github.com/$SITE_USERNAME/site
cd site
git submodule update --init --recursive
git remote add upstream ssh://git@github.com/FDio/site
git remote -v
git fetch upstream
git merge -m "Publish the Docs" upstream/master

# Get the version
VERSION=`source $WS_ROOT/src/scripts/version`
VERSION=${VERSION/"~"/"-"}

# Copy the files to the appropriate directory
SRC_DIR=../docs/_build/html/.
if [ "$VPP_BRANCH" == "master" ]
then
    TARGET_DIR=./static/docs/vpp/master
    rm -fr $TARGET_DIR
else
    TARGET_DIR=./static/docs/vpp/v$VPP_BRANCH
    rm -fr $TARGET_DIR
    mkdir -p $TARGET_DIR
    VERSION=v$VPP_BRANCH
    rm ./static/docs/vpp/latest
    ln -s $VERSION ./static/docs/vpp/latest
fi

# Create a branch for the commit
git checkout -b $VERSION
git branch

# Copy the docs
cp -r $SRC_DIR $TARGET_DIR

# Create the feature list
pushd ..
source ./sphinx_venv/bin/activate
find . -name FEATURE.yaml | ./src/scripts/fts.py --markdown > site/content/vppProject/vppfeatures/features.md
deactivate
popd

# Push the new docs
git add "*"
git commit -s -m "Publish docs from VPP $VERSION"
git push origin "$VERSION"

exit 0