#!/bin/bash

# Copyright 2020 The Go Authors. All rights reserved.
# Licensed under the MIT License. See LICENSE in the project root for license information.

set -euo pipefail

root_dir() {
  local script_name="${0}"
  local script_dir=$(dirname "${script_name}")
  local parent_dir=$(cd "${script_dir}/.." && pwd)
  echo "${parent_dir}"
}

ROOT="$(root_dir)"
cd "${ROOT}"  # always run from the root directory.

WORKTREE="$(mktemp -d)"
BRANCH="license-gen-$(date +%Y%m%d%H%M%S)"

git fetch
git worktree add --track -b "${BRANCH}" "${WORKTREE}" origin/master

cd "${WORKTREE}"
export GIT_GOFMT_HOOK=off

YARN="${ROOT}/node_modules/.bin/yarn"

ALL_LICENSES=$(
  $YARN licenses list --json --no-progress 2>/dev/null|
  jq 'select(.type == "table") | .data.body | map( {name: .[0], version: .[1], license: .[2], url: .[3], verndor: .[4], vendorName: .[5]} )')

NG=$(echo "${ALL_LICENSES}" | jq '
{
  "Apache-2.0": 1,
  "BSD-2-Clause": 1,
  "BSD-3-Clause": 1,
  "ISC": 1,
  "MIT": 1,
  "Unlicense": 1,
  "0BSD": 1,
  "(Unlicense OR Apache-2.0)": 1,
  "(MIT OR Apache-2.0)": 1,
  "(MIT AND Zlib)": 1,
  "(MIT AND BSD-3-Clause)": 1,
  "(BSD-2-Clause OR MIT OR Apache-2.0)": 1,
  "CC-BY-3.0": 1,
  "CC-BY-4.0": 1,
  "CC0-1.0": 1,
  "(MIT OR CC0-1.0)": 1,
} as $allowed_licenses |
{
  "json-schema@0.2.3": 1,
  "buffers@0.1.1": 1,   # MIT
} as $allow_list |
.[] | select(.license | in($allowed_licenses) | not)
| select((.name+"@"+.version) | in($allow_list) | not) ')

if [ -z "${NG}" ];
then
  echo "PASSED license check"
else
  echo "FAILED license check. The following dependencies need manual check: ${NG}" &&
  echo "WORKTREE=${WORKTREE}" &&
  exit 1
fi

LICENSEFILE="LICENSE.prod"
cat LICENSE > "${LICENSEFILE}"
printf "\n\n" >> "${LICENSEFILE}"
"${YARN}" licenses generate-disclaimer --prod >> "${LICENSEFILE}"

if [[ -f thirdpartynotices.txt ]]
then
  printf "\n" >> "${LICENSEFILE}"
  cat thirdpartynotices.txt >> "${LICENSEFILE}"
fi

cd - && mv "${WORKTREE}/${LICENSEFILE}" . && git worktree remove "${WORKTREE}" -f
