#!/bin/bash

set -e

build_tarball_builder_image() {
  builder_image=kasmvncbuilder:$os_codename${build_tag_for_images}
  docker build -t "$builder_image" \
    --build-arg OUTPUT_OWNER_UID="$output_owner_uid" \
    -f builder/dockerfile.${os}_${os_codename}${build_tag}.build .
}

create_distro_sccache_dir_under_output_owner() {
  sccache_dir_for_distro="$PWD/builder/build/.sccache/user_${output_owner_uid}/${os}_${os_codename}${build_tag}"
  as_output_owner mkdir -p "$sccache_dir_for_distro"
}

create_build_dir_under_output_owner() {
  build_dir="$PWD/builder/build"
  as_output_owner mkdir -p "$build_dir"
}

cd "$(dirname "$0")/.."
. builder/os_ver_cli.sh
. builder/scripts/output_owner.sh

select_consistent_output_owner_uid_and_gid

builder/build-www

build_tarball_builder_image

create_build_dir_under_output_owner
create_distro_sccache_dir_under_output_owner
docker run -v $build_dir:/build \
  -v "$sccache_dir_for_distro":/sccache \
  -e BUILD_TAG="$build_tag" \
  --user "$output_owner_uid":"$output_owner_gid" \
  -e KASMVNC_COMMIT_ID="$KASMVNC_COMMIT_ID" \
  -e SCCACHE_DIR=/sccache \
  --rm "$builder_image"

tarball_name="kasmvnc.${os}_${os_codename}.tar.gz"
tarball_name_with_build_tag="kasmvnc.${os}_${os_codename}${build_tag}.tar.gz"
if [[ "$tarball_name" != "$tarball_name_with_build_tag" ]]; then
  mv "$build_dir/$tarball_name" \
    "$build_dir/$tarball_name_with_build_tag"
fi
