#!/bin/bash REPO_TYPE=$1 REPO_NAME=$2 function usage { local basecmd 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 libre/libre-gnome\n" exit 1 } function get_github { local all_releases=$(git ls-remote --tags --sort="v:refname" https://github.com/"$REPO_NAME" | grep -Eo "v?([0-9]+\.){2}[0-9]+$") # extract only VERSION without 'v' local non_v_release=$(echo "$all_releases" | grep -v v | tail -n1 | cut -f2 | cut -d '/' -f3) non_v_release=${non_v_release%^\{\}} # remove extra characters ^{} from github # extract remaining version including 'v' local v_release=$(echo "$all_releases" | tail -n1 | cut -f2 | cut -d '/' -f3) v_release=${v_release%^\{\}} # remove extra characters ^{} from github # compare which newer from non_v_release to v_release if [ -n "$non_v_release" ] && [ "v$non_v_release" \> "$v_release" ]; then echo $non_v_release else echo $v_release fi } function get_artcode { git ls-remote --tags --sort="v:refname" "https://git.artcode.re/$REPO_NAME" | tail -n1 | cut -f2 | cut -d '/' -f3 } [[ $# -ne 2 ]] && usage if [ -z "$(command -v git)" ]; then echo "INSTALLING PACKAGE required" source "$MIAOU_BASH_DIR/lib/functions.sh" "$CURDIR/tools/idem_apt_install" git fi case $REPO_TYPE in github) get_github ;; artcode) get_artcode ;; *) echo "repository type <${REPO_TYPE}> not yet supported!" && exit 1 ;; esac