Merge pull request #71 from md5/reorder-stackbrew-library
Output stackbrew library file in a canonical order
diff --git a/generate-stackbrew-library.sh b/generate-stackbrew-library.sh
index 40b639e..328c034 100755
--- a/generate-stackbrew-library.sh
+++ b/generate-stackbrew-library.sh
@@ -1,5 +1,7 @@
-#!/usr/local/Cellar/bash/4.3.30/bin/bash
+#!/bin/bash
+
set -e
+shopt -s extglob
declare -A aliases
aliases=(
@@ -7,19 +9,46 @@
[1.596.1]='latest'
)
-versions=( */ )
-versions=( "${versions[@]%/}" )
+versions() {
+ local IFS=$'\n'
+ local versions=( "${@%/}" )
+ sort -Vr <<< "${versions[*]}"
+}
+
+lts_versions=( $(versions *.*.*/) )
+weekly_versions=( $(versions !(*.*.*)/) )
url='git://github.com/cloudbees/jenkins-ci.org-docker'
echo '# maintainer: Nicolas De Loof <nicolas.deloof@gmail.com> (@ndeloof)'
echo '# maintainer: Michael Neale <mneale@cloudbees.com> (@michaelneale)'
echo
-for version in "${versions[@]}"; do
- commit="$(git log -1 --format='format:%H' -- "$version")"
- versionAliases=( $version ${aliases[$version]} )
-
- for va in "${versionAliases[@]}"; do
+echo "# group: Current Releases"
+for current in $(IFS=$'\n'; sort -V <<< "${!aliases[*]}"); do
+ commit="$(git log -1 --format='format:%H' -- "$current")"
+ for va in "$current" ${aliases[$current]}; do
echo "$va: ${url}@${commit} $version"
done
+ echo
+done
+
+echo "# group: Previous LTS Releases"
+for version in "${lts_versions[@]}"; do
+ if [ "${aliases[$version]}" ]; then
+ continue
+ fi
+
+ commit="$(git log -1 --format='format:%H' -- "$version")"
+ echo "$version: ${url}@${commit} $version"
+done
+echo
+
+echo "# group: Previous Weekly Releases"
+for version in "${weekly_versions[@]}"; do
+ if [ "${aliases[$version]}" ]; then
+ continue
+ fi
+
+ commit="$(git log -1 --format='format:%H' -- "$version")"
+ echo "$version: ${url}@${commit} $version"
done