#!/usr/bin/env bash
set -eo pipefail
shopt -s  expand_aliases

layers_dir=$1
plan_path=$3

# shellcheck source=/dev/null
. generate-project.sh "${layers_dir}"

# shellcheck source=/dev/null
. generate-layers.sh "${layers_dir}"
generate_deps_layer build-deps
generate_deps_layer run-deps

# 2. install go
generate_stack_layer java "${plan_path}" true

# shellcheck source=/dev/null
. init-stack

# 3. MAKE CACHE LAYER, RUN BUILD
# 1. GET ARGS
bp_dir=$(
  cd "$(dirname "$0")"/..
  pwd
)

build_choice="maven"
if [ -f mvnw ] && [ -f gradlew ]; then
  if [[ -f .build-choice ]]; then
    build_choice=$(tr <.build-choice -d '[:space:]')
  fi
elif [ -f mvnw ]; then
  build_choice="maven"
elif [ -f gradlew ]; then
  build_choice="gradle"
fi

target_layer_dir="${layers_dir}/target"
mkdir -p "${target_layer_dir}"/profile.d

if [ "${build_choice}" == "maven" ]; then
  "$bp_dir/lib/maven_build" "${layers_dir}" "${target_layer_dir}"
elif [ "${build_choice}" == "gradle" ]; then
  "$bp_dir/lib/gradle_build" "${layers_dir}" "${target_layer_dir}"
fi

cat >"${target_layer_dir}.toml" <<EOL
[types]
cache = false
build = true
launch = true
EOL

generate-launch.sh "${layers_dir}"
