]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
spaces to tabs
authorNick Terrell <terrelln@fb.com>
Thu, 30 Mar 2017 01:47:23 +0000 (18:47 -0700)
committerNick Terrell <terrelln@fb.com>
Thu, 30 Mar 2017 21:47:42 +0000 (14:47 -0700)
contrib/linux-kernel/spaces_to_tabs.sh [new file with mode: 0755]

diff --git a/contrib/linux-kernel/spaces_to_tabs.sh b/contrib/linux-kernel/spaces_to_tabs.sh
new file mode 100755 (executable)
index 0000000..ebde5fb
--- /dev/null
@@ -0,0 +1,28 @@
+#!/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