#!/usr/bin/env bash

set -e
set -u
set -o pipefail

if [[ "${CI:-}" != 'true' ]]
then
    printf '%s\n' 'CI environment variable must be set to true'
    exit 1
fi

if [[ "${CIRCLECI:-}" != 'true' ]]
then
    printf '%s\n' 'CIRCLECI environment variable must be set to true'
    exit 1
fi

if [[ -z "${GITHUB_TOKEN:-}" ]]
then
    printf '%s\n' 'GITHUB_TOKEN environment variable must be set'
    exit 1
fi

function install_github_cli ()
{
    printf '%s\n' 'Installing hub CLI'
    pushd "$(mktemp -d)"
        curl -sSL 'https://github.com/github/hub/releases/download/v2.11.2/hub-linux-amd64-2.11.2.tgz' | tar xz
        PATH="$PATH:$PWD/hub-linux-amd64-2.11.2/bin"
    popd
}

base_branch='develop'

if [[ -n "${CI_PULL_REQUEST:-}" ]]
then
    printf '%s\n' 'CI_PULL_REQUEST is set, pull request already exists for this build'
    exit 0
fi

install_github_cli

printf '%s\n' "Creating a Pull Request to sync 'master' with 'develop'"

if ! hub pull-request \
    --reviewer '@MetaMask/extension-release-team' \
    --message "Master => develop" --message 'Merge latest release back into develop' \
    --base "$CIRCLE_PROJECT_USERNAME:$base_branch" \
    --head "$CIRCLE_PROJECT_USERNAME:$CIRCLE_BRANCH";
then
    printf '%s\n' 'Pull Request already exists'
fi