1
0
Fork 0
plantuml-mode/bin/download-plantuml.sh
Carlo Sciolla 689c6a6950
CI downloads plantuml (#94)
Fixes #73

Now the latest version of PlantUML is downloaded as part of the CI script. This has two consequences:

we always test against the latest and greatest PlantUML version.
PlantUML evolves at a much higher pace than plantuml-mode. This allows for some sanity check of our code with the upstream project.

builds are not reproducible
As a side effect of always downloading a (potentially) new PlantUML version, re-running the build for an old commit can lead to different outcomes. This is usually a big no-no but given the limited efforts currently spent on plantuml-mode I find it more convenient to immediately raise a flag if a new version of PlantUML causes issues.
2019-05-06 12:14:25 +02:00

21 lines
858 B
Bash

#!/bin/sh
# Where the script is executed
CURRENT_PATH="$(dirname "$(readlink -f "$0")")"
# Where to download the file
OUTPUT_PATH="${CURRENT_PATH}/plantuml.jar"
# Retrieve the list of versions, in XML format, only one result (the latest)
VERSIONS_URL='https://search.maven.org/solrsearch/select?q=g:net.sourceforge.plantuml+AND+a:plantuml&core=gav&start=0&rows=1&wt=xml'
# Only match the contents of the version (name="v") XML tag
LATEST_VERSION="$(curl -s "${VERSIONS_URL}" | grep -oP '(?<=<str name="v">).*(?=</str>)')"
# Compose the download link
DOWNLOAD_URL="https://search.maven.org/remotecontent?filepath=net/sourceforge/plantuml/plantuml/${LATEST_VERSION}/plantuml-${LATEST_VERSION}.jar"
# finally, download the JAR file
echo "Downloading PlantUML v${LATEST_VERSION} into ${OUTPUT_PATH}"
curl -so "${OUTPUT_PATH}" "${DOWNLOAD_URL}" 2>/dev/null