You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CMSIS-DSP/update_versions.sh

37 lines
1.1 KiB
Bash

#!/bin/bash
LINES=($(grep -n 'list of versions' version.js | cut -d: -f1))
VERSIONS_BEGIN=$(expr ${LINES[0]} - 1)
VERSIONS_END=$(expr ${LINES[1]} + 1)
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
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 ${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 +${VERSIONS_END} version.js.bak >> version.js
rm version.js.bak
exit 0