#!/usr/bin/env bash

set -e

LICENSES_TEMPLATE_PATH=./docs/src/about/license.template.md
SOFTWARE_LICENSE_PATH=./License.md
LICENSES_PATH=./docs/src/about/license.md
VERSION=$(jq -r '.version' package.json)

TEMP_LICENSES_PATH=$(mktemp)
license-checker --production --excludePackages biosimulations@${VERSION} --out ${TEMP_LICENSES_PATH}

# Remove local paths
cwd=$(pwd)
sed -i "s|$cwd/node_modules/||g" ${TEMP_LICENSES_PATH}

# Remove paths to packages
sed -i -E 's/[│ ]  [├└]─ path: .*$//g' ${TEMP_LICENSES_PATH}
sed -i '/^$/d' ${TEMP_LICENSES_PATH}

# Clean up directory tree
sed -i ':a;N;$!ba;s/\n/\x00/g' ${TEMP_LICENSES_PATH}
sed -i 's/[│ ]  ├─ \([^\x00]*\)\x00├─/│  └─ \1\x00├─/g' ${TEMP_LICENSES_PATH}
sed -i 's/\x00/\
/g' ${TEMP_LICENSES_PATH}

# Write to license file
SOFTWARE_LICENSE=$(cat ${SOFTWARE_LICENSE_PATH}) \
DEPENDENCY_LICENSES=$(cat ${TEMP_LICENSES_PATH}) \
  eval "echo \"$(<$LICENSES_TEMPLATE_PATH)\"" 2> /dev/null > $LICENSES_PATH
