mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
33 lines
758 B
Bash
Executable file
33 lines
758 B
Bash
Executable file
#!/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
|