Skip to content

Commit 327f8a5

Browse files
Merge branch 'master' into tests
2 parents 2be2057 + 6230b1a commit 327f8a5

1 file changed

Lines changed: 24 additions & 19 deletions

File tree

generate-client.sh

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
#
5959
# Output log: generate-client.log (overwritten on each run)
6060
#
61-
# Prerequisites: Node.js/npm, Java 25, Maven, Perl
61+
# Prerequisites: Java 25, Maven, Perl (Node.js/npm optional — JAR fallback used if absent)
6262
#
6363

6464
set -euo pipefail
@@ -92,24 +92,17 @@ LOG_FILE="$SCRIPT_DIR/generate-client.log"
9292
# Log everything to file and stdout
9393
exec > >(tee "$LOG_FILE") 2>&1
9494

95-
# Initialize nvm if available
96-
NVM_DIR="$HOME/.nvm"
97-
if [ -s "$NVM_DIR/nvm.sh" ]; then
98-
. "$NVM_DIR/nvm.sh"
99-
fi
100-
101-
# Ensure openapi-generator-cli is available
102-
if ! command -v openapi-generator-cli &> /dev/null; then
103-
echo "openapi-generator-cli not found. Installing via npm..."
104-
105-
if ! command -v npm &> /dev/null; then
106-
echo "Error: npm is not installed. Please install Node.js/npm first."
107-
exit 1
108-
fi
95+
OPENAPI_GENERATOR_VERSION="7.20.0"
96+
GENERATOR_CACHE_DIR="${OPENAPI_GENERATOR_CACHE_DIR:-${HOME}/.cache/openapi-generator}"
97+
GENERATOR_JAR="$GENERATOR_CACHE_DIR/openapi-generator-cli-${OPENAPI_GENERATOR_VERSION}.jar"
10998

110-
npm install -g @openapitools/openapi-generator-cli
111-
echo "openapi-generator-cli installed successfully."
99+
if [ ! -f "$GENERATOR_JAR" ]; then
100+
echo "Downloading openapi-generator-cli ${OPENAPI_GENERATOR_VERSION}..."
101+
mkdir -p "$GENERATOR_CACHE_DIR"
102+
curl -fSL -o "$GENERATOR_JAR" \
103+
"https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/${OPENAPI_GENERATOR_VERSION}/openapi-generator-cli-${OPENAPI_GENERATOR_VERSION}.jar"
112104
fi
105+
openapi-generator-cli() { java -jar "$GENERATOR_JAR" "$@"; }
113106

114107
generate() {
115108
local edition="$1"
@@ -233,11 +226,23 @@ else
233226
fi
234227

235228
if [ "$DRY_RUN" = false ]; then
229+
# Resolve mvn: prefer M2_HOME/MAVEN_HOME, fall back to PATH
230+
if [ -n "${M2_HOME:-}" ] && [ -x "$M2_HOME/bin/mvn" ]; then
231+
MVN="$M2_HOME/bin/mvn"
232+
elif [ -n "${MAVEN_HOME:-}" ] && [ -x "$MAVEN_HOME/bin/mvn" ]; then
233+
MVN="$MAVEN_HOME/bin/mvn"
234+
elif command -v mvn >/dev/null 2>&1; then
235+
MVN="mvn"
236+
else
237+
echo "Error: mvn not found. Set M2_HOME or MAVEN_HOME, or add mvn to PATH."
238+
exit 1
239+
fi
240+
236241
# Apply license headers and stage changes
237242
if [ "$VERBOSE" = true ]; then
238-
mvn -f "$SCRIPT_DIR/pom.xml" license:format
243+
"$MVN" -f "$SCRIPT_DIR/pom.xml" license:format
239244
else
240-
mvn -f "$SCRIPT_DIR/pom.xml" license:format -q
245+
"$MVN" -f "$SCRIPT_DIR/pom.xml" license:format -q
241246
fi
242247
git -C "$SCRIPT_DIR" add .
243248
fi

0 commit comments

Comments
 (0)