#!/bin/bash
set -e

# Get host multiarch for the path
DEB_HOST_MULTIARCH=$(dpkg-architecture -qDEB_HOST_MULTIARCH)

# Create a temporary directory for the minimal workspace
TEST_DIR=$(mktemp -d)
trap 'rm -rf "$TEST_DIR"' EXIT

cd "$TEST_DIR"

# Create WORKSPACE
touch WORKSPACE

# Create MODULE.bazel
cat <<EOF > MODULE.bazel
module(name = "test_hello")
bazel_dep(name = "rules_java")
EOF

# Create BUILD
cat <<EOF > BUILD
load("@rules_java//java:defs.bzl", "java_binary")
java_binary(
    name = "hello",
    srcs = ["HelloWorld.java"],
    main_class = "HelloWorld",
)
EOF

# Create HelloWorld.java
cat <<EOF > HelloWorld.java
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World from Debian Bazel!");
    }
}
EOF

# Debug: list java_tools files
echo "DEBUG: Listing /usr/lib/${DEB_HOST_MULTIARCH}/bazel/java_tools/:"
ls -l /usr/lib/${DEB_HOST_MULTIARCH}/bazel/java_tools/ || true
echo "DEBUG: Listing /usr/share/bazel/tools/java_tools/:"
ls -l /usr/share/bazel/tools/java_tools/ || true

# Run bazel info to verify configuration
bazel info

# Build and run the java_binary
bazel run --define=distribution=debian --verbose_failures \
 --override_repository=rules_java~~toolchains~remote_java_tools=/usr/lib/${DEB_HOST_MULTIARCH}/bazel/java_tools \
 --override_repository=rules_java~~toolchains~remote_java_tools_linux=/usr/lib/${DEB_HOST_MULTIARCH}/bazel/java_tools \
 --java_runtime_version=local_jdk \
 --tool_java_runtime_version=local_jdk \
 --javabase=@bazel_tools//tools/jdk:local_jdk \
 --host_javabase=@bazel_tools//tools/jdk:local_jdk \
 :hello
