| 
1 | 1 | #!/bin/bash  | 
2 | 2 | set -eu  | 
3 | 3 | 
 
  | 
 | 4 | +declare -A aliases=(  | 
 | 5 | +	[3.6]='3 latest'  | 
 | 6 | +)  | 
4 | 7 | defaultVariant='debian'  | 
5 | 8 | 
 
  | 
6 | 9 | self="$(basename "$BASH_SOURCE")"  | 
7 | 10 | cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"  | 
8 | 11 | 
 
  | 
 | 12 | +versions=( */ )  | 
 | 13 | +versions=( "${versions[@]%/}" )  | 
 | 14 | + | 
 | 15 | +# sort version numbers with highest first  | 
 | 16 | +IFS=$'\n'; versions=( $(echo "${versions[*]}" | sort -rV) ); unset IFS  | 
 | 17 | + | 
9 | 18 | # get the most recent commit which modified any of "$@"  | 
10 | 19 | fileCommit() {  | 
11 | 20 | 	git log -1 --format='format:%H' HEAD -- "$@"  | 
@@ -43,50 +52,52 @@ join() {  | 
43 | 52 | 	echo "${out#$sep}"  | 
44 | 53 | }  | 
45 | 54 | 
 
  | 
46 |  | -for variant in debian alpine; do  | 
47 |  | -	commit="$(dirCommit "$variant")"  | 
48 |  | - | 
49 |  | -	fullVersion="$(git show "$commit":"$variant/Dockerfile" | awk '$1 == "ENV" && $2 == "RABBITMQ_VERSION" { print $3; exit }')"  | 
50 |  | - | 
51 |  | -	versionAliases=()  | 
52 |  | -	while [ "${fullVersion%.*}" != "$fullVersion" ]; do  | 
53 |  | -		versionAliases+=( $fullVersion )  | 
54 |  | -		fullVersion="${fullVersion%.*}"  | 
55 |  | -	done  | 
56 |  | -	versionAliases+=(  | 
57 |  | -		$fullVersion  | 
58 |  | -		latest  | 
59 |  | -	)  | 
60 |  | - | 
61 |  | -	variantAliases=( "${versionAliases[@]/%/-$variant}" )  | 
62 |  | -	variantAliases=( "${variantAliases[@]//latest-/}" )  | 
63 |  | - | 
64 |  | -	if [ "$variant" = "$defaultVariant" ]; then  | 
65 |  | -		variantAliases=( "${versionAliases[@]}" )  | 
66 |  | -	fi  | 
67 |  | - | 
68 |  | -	echo  | 
69 |  | -	cat <<-EOE  | 
70 |  | -		Tags: $(join ', ' "${variantAliases[@]}")  | 
71 |  | -		GitCommit: $commit  | 
72 |  | -		Directory: $variant  | 
73 |  | -	EOE  | 
74 |  | - | 
75 |  | -	for subVariant in management; do  | 
76 |  | -		commit="$(dirCommit "$variant/$subVariant")"  | 
77 |  | - | 
78 |  | -		subVariantAliases=( "${versionAliases[@]/%/-$subVariant}" )  | 
79 |  | -		subVariantAliases=( "${subVariantAliases[@]//latest-/}" )  | 
80 |  | - | 
81 |  | -		if [ "$variant" != "$defaultVariant" ]; then  | 
82 |  | -			subVariantAliases=( "${subVariantAliases[@]/%/-$variant}" )  | 
 | 55 | +for version in "${versions[@]}"; do  | 
 | 56 | +	for variant in debian alpine; do  | 
 | 57 | +		commit="$(dirCommit "$version/$variant")"  | 
 | 58 | + | 
 | 59 | +		fullVersion="$(git show "$commit":"$version/$variant/Dockerfile" | awk '$1 == "ENV" && $2 == "RABBITMQ_VERSION" { print $3; exit }')"  | 
 | 60 | + | 
 | 61 | +		versionAliases=()  | 
 | 62 | +		while [ "$fullVersion" != "$version" -a "${fullVersion%[.-]*}" != "$fullVersion" ]; do  | 
 | 63 | +			versionAliases+=( $fullVersion )  | 
 | 64 | +			fullVersion="${fullVersion%[.-]*}"  | 
 | 65 | +		done  | 
 | 66 | +		versionAliases+=(  | 
 | 67 | +			$version  | 
 | 68 | +			${aliases[$version]:-}  | 
 | 69 | +		)  | 
 | 70 | + | 
 | 71 | +		if [ "$variant" = "$defaultVariant" ]; then  | 
 | 72 | +			variantAliases=( "${versionAliases[@]}" )  | 
 | 73 | +		else  | 
 | 74 | +			variantAliases=( "${versionAliases[@]/%/-$variant}" )  | 
 | 75 | +			variantAliases=( "${variantAliases[@]//latest-/}" )  | 
83 | 76 | 		fi  | 
84 | 77 | 
 
  | 
85 | 78 | 		echo  | 
86 | 79 | 		cat <<-EOE  | 
87 |  | -			Tags: $(join ', ' "${subVariantAliases[@]}")  | 
 | 80 | +			Tags: $(join ', ' "${variantAliases[@]}")  | 
88 | 81 | 			GitCommit: $commit  | 
89 |  | -			Directory: $variant/$subVariant  | 
 | 82 | +			Directory: $version/$variant  | 
90 | 83 | 		EOE  | 
 | 84 | + | 
 | 85 | +		for subVariant in management; do  | 
 | 86 | +			commit="$(dirCommit "$version/$variant/$subVariant")"  | 
 | 87 | + | 
 | 88 | +			subVariantAliases=( "${versionAliases[@]/%/-$subVariant}" )  | 
 | 89 | +			subVariantAliases=( "${subVariantAliases[@]//latest-/}" )  | 
 | 90 | + | 
 | 91 | +			if [ "$variant" != "$defaultVariant" ]; then  | 
 | 92 | +				subVariantAliases=( "${subVariantAliases[@]/%/-$variant}" )  | 
 | 93 | +			fi  | 
 | 94 | + | 
 | 95 | +			echo  | 
 | 96 | +			cat <<-EOE  | 
 | 97 | +				Tags: $(join ', ' "${subVariantAliases[@]}")  | 
 | 98 | +				GitCommit: $commit  | 
 | 99 | +				Directory: $version/$variant/$subVariant  | 
 | 100 | +			EOE  | 
 | 101 | +		done  | 
91 | 102 | 	done  | 
92 | 103 | done  | 
0 commit comments