You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.4 KiB
57 lines
1.4 KiB
#!/bin/bash
|
|
|
|
REPO_TYPE=$1
|
|
REPO_NAME=$2
|
|
|
|
function usage() {
|
|
local BASECMD=$(basename "$0")
|
|
echo 'usage: <REPO_TYPE> <REPO_NAME> [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
|
|
|
|
if [ -z "$(command -v git)" ]; then
|
|
echo "INSTALLING PACKAGE <GIT> required"
|
|
sudo apt install -y git
|
|
fi
|
|
|
|
case $REPO_TYPE in
|
|
github)
|
|
get_github
|
|
;;
|
|
artcode)
|
|
get_artcode
|
|
;;
|
|
*)
|
|
echo "repository type <${REPO_TYPE}> not yet supported!" && exit 1
|
|
;;
|
|
esac
|