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 #!/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)) VERSIONS=($(find -maxdepth 1 -mindepth 1 -type d) $(find -maxdepth 1 -mindepth 1 -type l))
LINES[0]=$(expr ${LINES[0]} - 1) declare -A versions
LINES[1]=$(expr ${LINES[1]} + 1) for folder in ${VERSIONS[*]#./}; do
if [ -f $folder/footer.js ]; then
VERSIONS=($(find -maxdepth 1 -mindepth 1 -type l) $(find -maxdepth 1 -mindepth 1 -type d)) version=$(grep "Version" $folder/footer.js | \
fields=() sed -r "s/.*'Version ([^']+)'.*/\1/" | \
for version in ${VERSIONS[*]#./}; do sed -r "s/\+.*$//" | \
if [ -f "$version/footer.js" ]; then sed -r "s/([^0-9])$/\10/")
label=$(grep "Version" $version/footer.js | sed -r "s/.*'Version ([^']+)'.*/\1/") versions["$version"]="$folder"
fields+=("\"${version}\": \"${label}\"")
fi 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 "//--- list of versions ---" >> version.js
echo "const versions = {" >> version.js echo "const versions = {" >> version.js
echo -n " " >> version.js echo -n " " >> version.js
echo $(IFS=,; echo "${fields[*]}") | sed 's/,/,\n /g' >> version.js echo $(IFS=,; echo "${fields[*]}") | sed 's/,/,\n /g' >> version.js
echo "}" >> version.js echo "}" >> version.js
echo "//--- list of versions ---" >> 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 rm version.js.bak

@ -1,8 +1,7 @@
//--- list of versions --- //--- list of versions ---
const versions = { const versions = {
"latest": "1.10.1", "main": "1.10.2-dev1",
"v1.10.1": "1.10.1", "latest": "1.10.1"
"main": "1.10.2-dev1"
} }
//--- list of versions --- //--- list of versions ---

Loading…
Cancel
Save