diff --git a/update_versions.sh b/update_versions.sh index eb0c5736..51911dce 100755 --- a/update_versions.sh +++ b/update_versions.sh @@ -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 diff --git a/version.js b/version.js index 9c8f54f0..6b92494e 100644 --- a/version.js +++ b/version.js @@ -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(' '+label+''); }