#!/bin/bash function ucase { echo "$1" | tr '[:lower:]' '[:upper:]' } function lcase { echo "$1" | tr '[:upper:]' '[:lower:]' } function mkindex { TMPFILE=$(mktemp -t $(basename $0).XXXXXX) || exit 1 sed 's/([^)]*)//g' | sed 's/[^a-zA-Z0-9_.:$]//g' | awk -F ':' '{printf "- [%s](%s#%s)\n", $3, $1, $3}' | sort -d -f -u >> $TMPFILE alpha="A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" for a in $alpha; do echo -n "[$a](#$(lcase "$a")) " done echo echo for a in $alpha; do links=$(cat $TMPFILE | grep -i "^- .[$(lcase "$a")]") if [ "$links" != "" ]; then echo "### $(ucase "$a")" echo "$links" echo fi done rm -f $TMPFILE } ( echo "## Belfry OpenScad Library Index" ( grep 'Constant: ' *.scad grep 'Function: ' *.scad grep 'Function&Module: ' *.scad grep 'Module: ' *.scad ) | mkindex ) > BOSL2.wiki/Index.md