summaryrefslogtreecommitdiffstats
path: root/Tools/scripts/untabify.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1998-09-14 15:43:38 (GMT)
committerGuido van Rossum <guido@python.org>1998-09-14 15:43:38 (GMT)
commitce85827ac19154b4b9da610fba4e1739f7b3b71a (patch)
treebde9ecbb06ff543e2c5b8410706421c1895ac977 /Tools/scripts/untabify.py
parentdcd038ff84b5f98cea9684813412eed76f321498 (diff)
downloadcpython-ce85827ac19154b4b9da610fba4e1739f7b3b71a.zip
cpython-ce85827ac19154b4b9da610fba4e1739f7b3b71a.tar.gz
cpython-ce85827ac19154b4b9da610fba4e1739f7b3b71a.tar.bz2
Utility to untabify stubber results.
Diffstat (limited to 'Tools/scripts/untabify.py')
-rwxr-xr-xTools/scripts/untabify.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/Tools/scripts/untabify.py b/Tools/scripts/untabify.py
new file mode 100755
index 0000000..1f74973
--- /dev/null
+++ b/Tools/scripts/untabify.py
@@ -0,0 +1,50 @@
+#! /usr/bin/env python
+
+"Replace tabs with spaces in argument files. Print names of changed files."
+
+import os
+import sys
+import string
+import getopt
+
+def main():
+ tabsize = 8
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], "t:")
+ if not args:
+ raise getopt.error, "At least one file argument required"
+ except getopt.error, msg:
+ print msg
+ print "usage:", sys.argv[0], "file ..."
+ return
+
+ for file in args:
+ process(file, tabsize)
+
+def process(file, tabsize):
+ try:
+ f = open(file)
+ text = f.read()
+ f.close()
+ except IOError, msg:
+ print "%s: I/O error: %s" % (`file`, str(msg))
+ return
+ newtext = string.expandtabs(text, tabsize)
+ if newtext == text:
+ return
+ backup = file + "~"
+ try:
+ os.unlink(backup)
+ except os.error:
+ pass
+ try:
+ os.rename(file, backup)
+ except os.error:
+ pass
+ f = open(file, "w")
+ f.write(newtext)
+ f.close()
+ print file
+
+if __name__ == '__main__':
+ main()