csc230-autoformat/autoformat.sh

28 lines
1.1 KiB
Bash
Executable File

#!/bin/zsh
# Format all c files
GLOB=( **/*.c )
# Astyle options:
# --mode=c : c formatting
# -xc : Brace attached to class names
# --style=stroustrup : stroustrup style (similar to 1tbs)
# -j : Always add brackets (even on one line if statements)
# -s2 : Three spaces
# -xG : Indent modifiers
# -S : Indent switches
# -K : Indent cases
# -N : Indent namespaces
# -xn : Attach bracket to namespace
# -xl : Attach inlines
# -n : Don't make a backup
# -p : Pad operators
# -H : Pad header (space after if, for, while)
OPTS=( --mode=c -xc --style=stroustrup -j -s2 -xG -S -K -N -xn -xl -n -p -H )
# Process the c files by adding the comment and removing newlines
perl "${0:h}/process.pl" $GLOB
# Colorize output if you can
if which colout>/dev/null; then
astyle $OPTS $GLOB|\grep -P '^(?!Unchanged)'|colout '(Formatted)' green||true
else
astyle $OPTS $GLOB|\grep -P '^(?!Unchanged)'||true
fi