second commit
This commit is contained in:
Executable
+60
@@ -0,0 +1,60 @@
|
||||
#!/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 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() {
|
||||
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
|
||||
Reference in New Issue
Block a user