Merge commit 'c9b86876044cdce95730ea2c6a2af65e06a86125' as 'cde/programs/dtksh/ksh93'
This commit is contained in:
33
cde/programs/dtksh/ksh93/bin/Mamfile_indent
Executable file
33
cde/programs/dtksh/ksh93/bin/Mamfile_indent
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user