cnhttpd
1/17/2019 - 7:39 AM

Downloads latest artifact version from artifactory

Downloads latest artifact version from artifactory

#!/bin/bash

# downloads latest version of an artifact from artifactory

set -e

usage(){
  echo "Usage: $*" >&2
  exit 64
}

repo=""
group=""
artifact=""
classifier=""
while getopts r:g:a:c: OPT; do
  case "${OPT}" in
    r) repo="${OPTARG}";;
    g) group="${OPTARG}";;
    a) artifact="${OPTARG}";;
    c) classifier="${OPTARG}";;
  esac
done
shift $(( $OPTIND - 1 ))

if [ -z "${repo}" ] || [ -z "${group}" ] || [ -z "${artifact}" ]; then
  usage "-r REPOSITORY -g GROUPID -a ARTIFACTID [-c CLASSIFIER]"
fi

# Maven artifact location
ga=${group//./\/}/$artifact
repopath=$repo/$ga
version=`curl -s $repopath/maven-metadata.xml | grep latest | sed "s/.*<latest>\([^<]*\)<\/latest>.*/\1/"`
build=`curl -s $repopath/$version/maven-metadata.xml | grep '<value>' | head -1 | sed "s/.*<value>\([^<]*\)<\/value>.*/\1/"`

jar=""
if [ -z "${classifier}" ]; then
  jar=$artifact-$build.jar
else
  jar=$artifact-$build-$classifier.jar
fi

url=$repopath/$version/$jar

# Download
# echo $url
curl $url