cc00c6c6ae
Sets up toolchain pinning, format/lint (Biome + Spotless), lefthook pre-commit hooks, Docker Compose for Postgres, and trivial passing tests for both stacks. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
31 lines
1.1 KiB
Bash
Executable File
31 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
# Minimal Maven Wrapper — downloads Apache Maven on first run and caches it.
|
|
set -e
|
|
|
|
MAVEN_VERSION="3.9.9"
|
|
MAVEN_CACHE="${HOME}/.m2/wrapper/dists/apache-maven-${MAVEN_VERSION}"
|
|
MAVEN_URL="https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/${MAVEN_VERSION}/apache-maven-${MAVEN_VERSION}-bin.tar.gz"
|
|
|
|
if [ ! -f "${MAVEN_CACHE}/bin/mvn" ]; then
|
|
MAVEN_TMP="${MAVEN_CACHE}.tmp.$$"
|
|
if mkdir "${MAVEN_CACHE}.lock" 2>/dev/null; then
|
|
echo "Downloading Apache Maven ${MAVEN_VERSION}..." >&2
|
|
mkdir -p "${MAVEN_TMP}"
|
|
if command -v curl > /dev/null 2>&1; then
|
|
curl -fsSL "${MAVEN_URL}" | tar -xz --strip-components=1 -C "${MAVEN_TMP}"
|
|
elif command -v wget > /dev/null 2>&1; then
|
|
wget -qO- "${MAVEN_URL}" | tar -xz --strip-components=1 -C "${MAVEN_TMP}"
|
|
else
|
|
rm -rf "${MAVEN_TMP}" "${MAVEN_CACHE}.lock"
|
|
echo "ERROR: curl or wget is required to download Maven" >&2
|
|
exit 1
|
|
fi
|
|
mv "${MAVEN_TMP}" "${MAVEN_CACHE}"
|
|
rm -rf "${MAVEN_CACHE}.lock"
|
|
else
|
|
while [ -d "${MAVEN_CACHE}.lock" ]; do sleep 0.2; done
|
|
fi
|
|
fi
|
|
|
|
exec "${MAVEN_CACHE}/bin/mvn" "$@"
|