#!/usr/bin/env bash
set -euo pipefail
if [[ $# -ne 0 ]]; then
echo "usage: $0" >&2
exit 2
fi
install_root=${QK_DEV_INSTALL_ROOT:-"$HOME/.local/share/qk"}
command_bin_directory=${QK_DEV_BIN_DIR:-"$HOME/.local/bin"}
bin_directory="$install_root/bin"
mkdir -p "$bin_directory" "$install_root/libs" "$command_bin_directory"
GOBIN="$bin_directory" go install -trimpath ./cmd/qkc
cp -a libs/. "$install_root/libs/"
command_link="$command_bin_directory/qkc"
if [[ -e $command_link && ! -L $command_link ]]; then
rm -f -- "$command_link"
fi
ln -sfn "$bin_directory/qkc" "$command_link"
smoke_directory=$(mktemp -d)
cleanup() {
rm -rf -- "$smoke_directory"
}
trap cleanup EXIT
printf 'module main\n\nlet main() { assert(true, "installed libraries") }\n' >"$smoke_directory/main.qk"
"$command_link" build -no-emit "$smoke_directory"
echo "installed qkc to $bin_directory/qkc"
echo "installed QK libraries to $install_root/libs"
echo "linked $command_link -> $bin_directory/qkc"