#!/bin/bash -e

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

# This script assumes it is being run from the project root directory.
# From the project directory run: scripts/<this script>.sh
# This is generic in that it does not assume a POM file and does not use Maven.
# It does us Git.

#  Input Parameters:
#  \$1 = project.basedir
#  \$2 = project.artifactId
#  \$3 = GitHub Tag for this deployment
#    For example:  $ scripts/<this script>.sh datasketches-memory 0.12.3-incubator

echo
echo "===================Check List======================"
echo "1. Verify that you can successfully read and write to the dist directories using SVN."
echo
echo "2. Verify that your GPG keys have been created and stored in:"
echo " - https://dist.apache.org/repos/dist/dev/incubator/datasketches/KEYS  AND"
echo " - https://dist.apache.org/repos/dist/release/incubator/datasketches/KEYS"
echo
echo "3. Run all Unit Tests, Strict Profiles, CheckStyle, SpotBugs, Clover, etc."
echo
echo "4. Locally create a release branch with a name of one of the following forms:"
echo "     1.0.X"
echo "     1.0.X-incubating"
echo
echo "5. Locally create a tag with a name of one of the following forms:"
echo "     1.0.0"
echo "     1.0.0-SNAPSHOTNN"
echo "     1.0.0-RCNN"
echo "     1.0.0-incubating"
echo "     1.0.0-incubating-SNAPSHOTNN"
echo "     1.0.0-incubating-RCNN"
echo
echo "   'SNAPSHOT', if relevant, is always capitalized."
echo "   Note: SNAPSHOT deployments are never relevant for the 'dist/release' branch."
echo
echo "   Commit the branch and tag back to the remote origin"
echo
echo "6. Verify that your local GitHub repository current and the git status is clean."
echo
echo "Proceed? [y|N]"; read confirm; if [[ $confirm != "y" ]]; then echo "Please rerun this script when ready."; exit 1; fi

# Setup absolute directory references
MyBase=$(pwd)

# Move to project directory
cd $1
ProjectBaseDir=$(pwd) #create as absolute address

## Extract project.artifactId and Tag from input parameters:
ProjectArtifactId=$2
Tag=$3



TMP=$(git status --porcelain)
if [[ -n $TMP ]];
then
  echo "git status --porcelain:  $TMP"
  echo "WARNING!!! Your GitHub repo is not clean!"
  echo
  # exit 1  #Don't exit for now
fi

TIME=$(date -u +%Y%m%d.%H%M%S)

echo
echo "DateTime: $TIME"

echo
echo "## Load GPG Agent:"
eval $(gpg-agent --daemon) > /dev/null



# Determine the type of release / deployment we are dealing with
#  and adjust the target directories and file version to be used in the file name accordingly.

Release=false
Snapshot=false
ReleaseCandidate=false
FileVersion=
LeafDir=

### SNAPSHOT ?
if [[ $Tag =~ .*-SNAPSHOT[0-9]* ]]; 
then
  echo
  echo "This Tag is for a SNAPSHOT."
  echo "Proceed? [y|N]"; read confirm; if [[ $confirm != "y" ]]; then echo "Please rerun this script when ready."; exit 1; fi
  Snapshot=true
  FileVersion=${Tag%-SNAPSHOT}-$TIME # Remove SNAPSHOT, add date-time
  LeafDir=$Tag
else
  ### RELEASE CANDIDATE ?
  if [[ $Tag =~ .*-[rR][cC][0-9][0-9]* ]];
  then
    echo
    echo "This Tag is for a Release Candidate."
    echo "Proceed? [y|N]"; read confirm; if [[ $confirm != "y" ]]; then echo "Please rerun this script when ready."; exit 1; fi
    ReleaseCandidate=true
    # RCSubStr=$(expr "$Tag" : '.*\(-[rR][cC][0-9]*\)')
    FileVersion=$Tag   # ${Tag%$RCSubStr}
    LeafDir="$Tag"
  else
    echo "Please confirm that this the Final Release of $ProjectArtifactId : $Tag"
    echo "Proceed? [y|N]"; read confirm; if [[ $confirm != "y" ]]; then echo "Please rerun this script when ready."; exit 1; fi
    Release=true
    FileVersion="$Tag"
    LeafDir=$Tag
  fi
fi


# extract the SubDir name, e.g., "memory" from the artifactId
SubDir=$(expr "$ProjectArtifactId" : 'datasketches-\([a-z]*\)')

# Are we still incubating?
if [[ $Tag =~ .*-incubating.* ]]
then
  Incubating=true
  Incubator="incubator/" #part of file path
else
  Incubating=false
  Incubator=""
fi

# Set up the paths

FilesPath=${SubDir}/${LeafDir}
LocalPath="target/assy-tmp/dist"
RemotePath="https://dist.apache.org/repos/dist"
if ( $Release )
then
  LocalSvnBasePath="$LocalPath"/release/"$Incubator"datasketches
  RemoteSvnBasePath="$RemotePath"/release/"$Incubator"datasketches
else
  LocalSvnBasePath="$LocalPath"/dev/"$Incubator"datasketches
  RemoteSvnBasePath="$RemotePath"/dev/"$Incubator"datasketches
fi

LocalFilesPath="$LocalSvnBasePath"/"$FilesPath"

# Create target/assy-tmp dir if it doesn't exist
mkdir -p target
cd target
rm -rf assy-tmp
mkdir -p assy-tmp/dist
cd ../

ZipName=apache-${ProjectArtifactId}-${FileVersion}-src.zip

echo
echo "===========SUMMARY OF INPUT PARAMETERS============="
echo "ProjectArtifactId    : $ProjectArtifactId"
echo "Tag                  : $Tag"
echo "Incubating           : $Incubating"
echo "File Version String  : $FileVersion"
echo "Target ZIP File Name : $ZipName"
echo "Target Leaf Dir      : $LeafDir"
echo "SubDir               : $SubDir"
echo "FilesPath            : $FilesPath"
echo "LocalSvnBasePath     : $LocalSvnBasePath"
echo "RemoteSvnBasePath    : $RemoteSvnBasePath"
echo "LocalFilesPath       : $LocalFilesPath"

echo
echo "Please confirm if the above is correct."
echo "Proceed? [y|N]"; read confirm; if [[ $confirm != "y" ]]; then echo "Please rerun this script when ready."; exit 1; fi

# move to base path and checkout
mkdir -p $LocalSvnBasePath

cd $LocalSvnBasePath
svn co $RemoteSvnBasePath .
cd $ProjectBaseDir

if [ -d "$LocalFilesPath" ] && [ ! $Snapshot ]; 
then
  echo
  echo "ERROR!!! $LocalFilesPath already exists."
  echo
  exit 1
fi

echo
echo "Is the SVN Checkout without conflicts?"
echo "Proceed? [y|N]"; read confirm; if [[ $confirm != "y" ]]; then echo "Please rerun this script when ready."; exit 1; fi

#make the leaf directories
mkdir -p $LocalFilesPath

echo
echo "## Zip:"

# ZIP
#scripts/createZip.sh $ZipName $LocalFilesPath
git archive --output="$LocalFilesPath"/$ZipName $Tag

echo
echo "Is the Zip file correct?"
echo "Proceed? [y|N]"; read confirm; if [[ $confirm != "y" ]]; then echo "Please rerun this script when ready."; exit 1; fi

cd $LocalFilesPath #for signing

if [ ! -f "$ZipName" ]; then 
  echo
  echo " !!! ERROR: $ZipName file does not exist"
  echo
  exit 1;
fi

echo " * ZIP File = $ZipName"

echo
echo "## GPG Sign"

ASC=${ZipName}.asc
gpg -ab "$ZipName"

if [ ! -f ${ASC} ]; then 
  echo
  echo " !!! ERROR: ${ASC} file does not exist"
  exit 1;
fi
echo " * ASC File = ${ASC}"

echo
echo "## GPG Verify"
gpg --verify "$ASC" "$ZipName"

echo
echo "## SHA512 sign"

SHA512=${ZipName}.sha512
shasum -a 512 "$ZipName" >> "$SHA512"

if [ ! -f "$SHA512" ]; then 
  echo
  echo " !!! ERROR: .sha512 file does not exist"
  exit 1;
fi
echo " * SHA512 file = $SHA512"

echo
echo "## SHA512 Check:"
shasum -a 512 -c $SHA512

cd $ProjectBaseDir

echo 
echo "=================DEPLOY TO DIST===================="
echo
echo "Proceed? [y|N]"; read confirm; if [[ $confirm != "y" ]]; then echo "Please rerun this script when ready."; exit 1; fi

echo
cd $LocalSvnBasePath
svn add --force .
svn ci -m "Deploy $FileVersion to DIST"

TMP=$(svn status)
if [[ -n $TMP ]];
then
  echo "svn status:  $TMP"
  echo "ERROR!!! Your svn status is not clean!"
  echo
  exit 1
fi

cd $ProjectBaseDir

echo
echo "Is the remote dist directory structure and content OK?"
echo "Proceed? [y|N]"; read confirm; if [[ $confirm != "y" ]]; 
then 
  echo "Please rerun this script when ready."; 
  echo "You may need to manually delete files from the dist repo"
  exit 1; 
fi

echo
echo "# DEPLOYMENT SUCCESS"
echo

