#!/bin/sh

set -e
set -u

libexec="$(cd "$(dirname "$0")"; pwd)"
top="${libexec}/.."
src="${2:-"${top}/src"}"
version="${1:-$("${libexec}/metadata" node_version)}"

cd "${src}/node-v${version}"

BASEDIR="${PWD}"
BUILDTYPE="${BUILDTYPE:-Release}"

eval "$("${libexec}/platform")"

cd "${BASEDIR}/deps/v8/include"

rm -rf "${top}/vendor/v8/include"
find . -name '*.h' | while read -r header; do
    dir="${top}/vendor/v8/include/$(dirname "${header}")"
    mkdir -p "${dir}"
    cp "${header}" "${dir}"
done

cd "${BASEDIR}/out/${BUILDTYPE}"

rm -rf "${top}/vendor/v8/${RUBY_TARGET_PLATFORM}"
# shellcheck disable=SC2043
for lib in libv8_monolith.a; do
    dir="${top}/vendor/v8/${RUBY_TARGET_PLATFORM}/libv8/obj/$(dirname "${lib}")"
    mkdir -p "${dir}"
    rm -f "${dir}/${lib}"

    echo "${BASEDIR}/out/${BUILDTYPE}/${lib} -> ${dir}/${lib}"
    "${STRIP}" -S -x -o "${dir}/${lib}" "${lib}"
done

mkdir -p "${top}/ext/libv8-node"
echo '--- !ruby/object:Libv8::Node::Location::Vendor {}' > "${top}/ext/libv8-node/.location.yml"
