]> begriffs open source - cmsis-freertos/blob - update_versions.sh
Update documentation for branch main
[cmsis-freertos] / update_versions.sh
1 #!/bin/bash
2
3 LINES=($(grep -n 'list of versions' version.js | cut -d: -f1))
4 VERSIONS_BEGIN=$(expr ${LINES[0]} - 1)
5 VERSIONS_END=$(expr ${LINES[1]} + 1)
6
7 VERSIONS=($(find -maxdepth 1 -mindepth 1 -type d) $(find -maxdepth 1 -mindepth 1 -type l))
8 declare -A versions
9 for folder in ${VERSIONS[*]#./}; do
10   if [ -f $folder/footer.js ]; then
11     version=$(grep "Version" $folder/footer.js | \
12               sed -r "s/.*'Version ([^']+)'.*/\1/" | \
13               sed -r "s/\+.*$//" | \
14               sed -r "s/([^0-9])$/\10/")
15     versions["$version"]="$folder"
16   fi
17 done
18 fields=()
19 for version in $(IFS=$'\n'; sed -r 's/$/_/' <<< "${!versions[*]}" | sort -Vr | sed -r 's/_$//'); do
20     fields+=( "\"${versions[$version]}\": \"$version\"" )
21 done
22
23 mv version.js version.js.bak
24
25 head -n ${VERSIONS_BEGIN} version.js.bak > version.js
26 echo "//--- list of versions ---" >> version.js
27 echo "const versions = {" >> version.js
28 echo -n "    " >> version.js
29 echo $(IFS=,; echo "${fields[*]}") | sed 's/,/,\n    /g'  >> version.js
30 echo "}" >> version.js
31 echo "//--- list of versions ---" >> version.js
32 tail -n +${VERSIONS_END} version.js.bak >> version.js
33
34 rm version.js.bak
35
36 exit 0