#!/bin/bash REPO_TYPE=$1 REPO_NAME=$2 function usage { local BASECMD=$(basename "$0") echo 'usage: [DESTINATION]' echo 'example:' echo -e '\t# REPO_TYPE=github' echo -e "\t$BASECMD github Dolibarr/dolibarr\n" echo -e '\t# REPO_TYPE=artcode' echo -e "\t$BASECMD artcode pvincent/debian-gnome\n" exit -1 } function get_github { local all_releases=$( git ls-remote --tags --sort="v:refname" git://github.com/$REPO_NAME ) # extract only VERSION without 'v' local non_v_release=$( echo "$all_releases" \ | grep -v "refs/tags/v" | grep -v dev | grep -v rc | tail -n1 | cut -f2 | cut -d '/' -f3 ) non_v_release=${non_v_release%^\{\}} # remove extra characters ^{} from github [ -n "$non_v_release" ] && echo $non_v_release && return # extract remaining version including 'v' local v_release=$( echo "$all_releases" \ | grep -v dev | grep -v rc | tail -n1 | cut -f2 | cut -d '/' -f3 ) v_release=${v_release%^\{\}} # remove extra characters ^{} from github echo $v_release } function get_artcode { release=$( git ls-remote --tags --sort="v:refname" \ https://git.artcode.re/$REPO_NAME \ | tail -n1 | cut -f2 | cut -d '/' -f3 ) echo $release } [[ $# -ne 2 ]] && usage case $REPO_TYPE in github ) get_github ;; artcode ) get_artcode ;; * ) echo "repository type <${REPO_TYPE}> not yet supported!" && exit 1 ;; esac