zstd/contrib/linux-kernel/spaces_to_tabs.sh
2017-03-30 14:47:42 -07:00

29 lines
655 B
Bash
Executable File

#!/bin/sh
set -e
# Constants
INCLUDE='include/'
LIB='lib/'
SPACES=' '
TAB=$'\t'
TMP="replacements.tmp"
echo "Files: " $INCLUDE* $LIB*
# Check files for existing tabs
grep "$TAB" $INCLUDE* $LIB* && exit 1 || true
# Replace the first tab on every line
sed -i '' "s/^$SPACES/$TAB/" $INCLUDE* $LIB*
# Execute once and then execute as long as replacements are happening
more_work="yes"
while [ ! -z "$more_work" ]
do
rm -f $TMP
# Replaces $SPACES that directly follow a $TAB with a $TAB.
# $TMP will be non-empty if any replacements took place.
sed -i '' "s/$TAB$SPACES/$TAB$TAB/w $TMP" $INCLUDE* $LIB*
more_work=$(cat "$TMP")
done
rm -f $TMP