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.
		
		
		
		
		
			
		
			
				
					
					
						
							60 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							60 lines
						
					
					
						
							1.5 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" | 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
							 |