mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-13 19:52:20 +00:00
34 lines
758 B
Text
34 lines
758 B
Text
|
#!/usr/bin/env sh
|
||
|
IFS=''; set -fCu # safe mode: no split/glob = no quoting headaches
|
||
|
let() { return $((!($1))); }
|
||
|
|
||
|
# Automatically (re-)indent make...done blocks in a Mamfile.
|
||
|
# Usage: Mamfile_indent <Mamfile >Mamfile.new
|
||
|
#
|
||
|
# Should work on all current POSIX compliant shells.
|
||
|
# By Martijn Dekker <martijn@inlv.org>, 2021. Public domain.
|
||
|
|
||
|
# Spacing per indentation level. Edit to change style.
|
||
|
indent=' ' # one tab
|
||
|
|
||
|
# Remove existing indentation, add new indentation.
|
||
|
indentlvl=0
|
||
|
sed 's/^[[:space:]]*//' \
|
||
|
| while read -r line
|
||
|
do case $line in
|
||
|
'') continue ;;
|
||
|
done*) let "indentlvl -= 1" ;;
|
||
|
esac
|
||
|
|
||
|
spc=
|
||
|
i=0
|
||
|
while let "(i += 1) <= indentlvl"
|
||
|
do spc=$indent$spc
|
||
|
done
|
||
|
printf '%s\n' $spc$line
|
||
|
|
||
|
case $line in
|
||
|
make*) let "indentlvl += 1" ;;
|
||
|
esac
|
||
|
done
|