#!/bin/sh

# Generate CHANGELOG from git repo on GitHub, relies on GitHub API 

# WARNING!!!
# Please make sure that you have installed Docker and properly setup GitHub token to access to your git repo

# See more info here: 
#     https://github.com/github-changelog-generator/github-changelog-generator 
#     https://github.com/github-changelog-generator/github-changelog-generator#github-token


set -e

tmp_dir="/tmp/github_changelog_generator"
work_dir=$PWD

if [ "$CI" == "true" ]; then
  work_dir=${WORKDIR:-"/usr/console"}
fi

if [ "$RELEASE_TAG" == "" ]; then
  echo "    RELEASE_TAG is required, please specify token via 'RELEASE_TAG' environment variable"
  echo "    export RELEASE_TAG=1.14.3"
  exit 1
fi

function cleanup_dir {
  rm -rf $tmp_dir 
  mkdir $tmp_dir

  rm $work_dir/CHANGELOG.pdf | echo 
  rm $work_dir/CHANGELOG.md | echo 
}

function send_to_slack_channel {
  slack file upload --channels drakemall-releases -cm "Notes about drakemall next v$RELEASE_TAG release. p.s. this feature is under testing" --file $PWD/CHANGELOG.pdf
}

function gen_changelog {
  $work_dir/scripts/gen-changelog.sh $work_dir/CHANGELOG.md
  cp $work_dir/scripts/ci/pdf_metadata.yml $tmp_dir

  docker rm -f md2pdf || echo 
  docker run --name md2pdf -d -i --entrypoint sh fiware/md2pdf
  docker exec -ti md2pdf mkdir src
  docker cp $work_dir/CHANGELOG.md md2pdf:/src
  docker cp $work_dir/scripts/ci/pdf_metadata.yml md2pdf:/src
  docker exec -ti md2pdf md2pdf -i /src/pdf_metadata.yml -o /src/CHANGELOG.pdf
  docker cp md2pdf:/src/CHANGELOG.pdf $work_dir/CHANGELOG.pdf
  docker stop md2pdf
  docker rm md2pdf
}

cleanup_dir
gen_changelog
send_to_slack_channel

# mv $tmp_dir/CHANGELOG.pdf $work_dir/CHANGELOG.pdf