Sort version list according to SemVer rules.

pull/35/head
Jonatan Antoni 4 years ago
parent 5cf568cfc4
commit fe8845e4aa

@ -1,28 +1,35 @@
#!/bin/bash
mv -f version.js version.js.bak
LINES=($(grep -n 'list of versions' version.js | cut -d: -f1))
VERSIONS_BEGIN=$(expr ${LINES[0]} - 1)
VERSIONS_END=$(expr ${LINES[1]} + 1)
LINES=($(grep -n 'list of versions' version.js.bak | cut -d: -f1))
LINES[0]=$(expr ${LINES[0]} - 1)
LINES[1]=$(expr ${LINES[1]} + 1)
VERSIONS=($(find -maxdepth 1 -mindepth 1 -type l) $(find -maxdepth 1 -mindepth 1 -type d))
fields=()
for version in ${VERSIONS[*]#./}; do
if [ -f "$version/footer.js" ]; then
label=$(grep "Version" $version/footer.js | sed -r "s/.*'Version ([^']+)'.*/\1/")
fields+=("\"${version}\": \"${label}\"")
VERSIONS=($(find -maxdepth 1 -mindepth 1 -type d) $(find -maxdepth 1 -mindepth 1 -type l))
declare -A versions
for folder in ${VERSIONS[*]#./}; do
if [ -f $folder/footer.js ]; then
version=$(grep "Version" $folder/footer.js | \
sed -r "s/.*'Version ([^']+)'.*/\1/" | \
sed -r "s/\+.*$//" | \
sed -r "s/([^0-9])$/\10/")
versions["$version"]="$folder"
fi
done
done
fields=()
for version in $(IFS=$'\n'; sed -r 's/$/_/' <<< "${!versions[*]}" | sort -Vr | sed -r 's/_$//'); do
fields+=( "\"${versions[$version]}\": \"$version\"" )
done
mv version.js version.js.bak
head -n ${LINES[0]} version.js.bak > version.js
head -n ${VERSIONS_BEGIN} version.js.bak > version.js
echo "//--- list of versions ---" >> version.js
echo "const versions = {" >> version.js
echo -n " " >> version.js
echo $(IFS=,; echo "${fields[*]}") | sed 's/,/,\n /g' >> version.js
echo "}" >> version.js
echo "//--- list of versions ---" >> version.js
tail -n +${LINES[1]} version.js.bak >> version.js
tail -n +${VERSIONS_END} version.js.bak >> version.js
rm version.js.bak

@ -1,8 +1,7 @@
//--- list of versions ---
const versions = {
"latest": "1.10.1",
"v1.10.1": "1.10.1",
"main": "1.10.2-dev1"
"main": "1.10.2-dev1",
"latest": "1.10.1"
}
//--- list of versions ---
@ -30,7 +29,7 @@ function writeVersionDropdown() {
for(var version in versions) {
var label = versions[version];
if (label != version) {
label += " ("+version+")"
label += "("+version+")"
}
document.write(' <a href="'+urlForVersion(docUrl, version)+'">'+label+'</a>');
}

Loading…
Cancel
Save