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