Permalink
70 lines (62 sloc)
2.08 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
openapi-generator/bin/utils/openapi-generator-cli.sh
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
#### | |
# Save as openapi-generator-cli on your PATH. chmod u+x. Enjoy. | |
# | |
# This script will query github on every invocation to pull the latest released version | |
# of openapi-generator. | |
# | |
# If you want repeatable executions, you can explicitly set a version via | |
# OPENAPI_GENERATOR_VERSION | |
# e.g. (in Bash) | |
# export OPENAPI_GENERATOR_VERSION=3.1.0 | |
# openapi-generator-cli.sh | |
# or | |
# OPENAPI_GENERATOR_VERSION=3.1.0 openapi-generator-cli.sh | |
# | |
# This is also helpful, for example, if you want to evaluate a SNAPSHOT version. | |
# | |
# NOTE: Jars are downloaded on demand from maven into the same directory as this script | |
# for every 'latest' version pulled from github. Consider putting this under its own directory. | |
#### | |
set -o pipefail | |
for cmd in {mvn,jq,curl}; do | |
if ! command -v ${cmd} > /dev/null; then | |
>&2 echo "This script requires '${cmd}' to be installed." | |
exit 1 | |
fi | |
done | |
function latest.tag { | |
local uri="https://api.github.com/repos/${1}/releases" | |
local ver=$(curl -s ${uri} | jq -r 'first(.[]|select(.prerelease==false)).tag_name') | |
if [[ $ver == v* ]]; then | |
ver=${ver:1} | |
fi | |
echo $ver | |
} | |
ghrepo=openapitools/openapi-generator | |
groupid=org.openapitools | |
artifactid=openapi-generator-cli | |
ver=${OPENAPI_GENERATOR_VERSION:-$(latest.tag $ghrepo)} | |
jar=${artifactid}-${ver}.jar | |
cachedir=${OPENAPI_GENERATOR_DOWNLOAD_CACHE_DIR} | |
DIR=${cachedir:-"$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"} | |
if [ ! -d "${DIR}" ]; then | |
mkdir -p "${DIR}" | |
fi | |
if [ ! -f ${DIR}/${jar} ]; then | |
repo="central::default::https://repo1.maven.org/maven2/" | |
if [[ ${ver} =~ ^.*-SNAPSHOT$ ]]; then | |
repo="central::default::https://oss.sonatype.org/content/repositories/snapshots" | |
fi | |
mvn org.apache.maven.plugins:maven-dependency-plugin:2.9:get \ | |
-DremoteRepositories=${repo} \ | |
-Dartifact=${groupid}:${artifactid}:${ver} \ | |
-Dtransitive=false \ | |
-Ddest=${DIR}/${jar} | |
fi | |
java -ea \ | |
${JAVA_OPTS} \ | |
-Xms512M \ | |
-Xmx1024M \ | |
-server \ | |
-jar ${DIR}/${jar} "$@" |