/Tools/scripts/reindent-rst.py

http://unladen-swallow.googlecode.com/ · Python · 29 lines · 21 code · 5 blank · 3 comment · 8 complexity · 9680e8b66a37d4d03945ebd1146e973b MD5 · raw file

  1. #!/usr/bin/env python
  2. # Make a reST file compliant to our pre-commit hook.
  3. # Currently just remove trailing whitespace.
  4. from __future__ import with_statement
  5. import sys, re, shutil
  6. ws_re = re.compile(r'\s+(\r?\n)$')
  7. def main(argv=sys.argv):
  8. rv = 0
  9. for filename in argv[1:]:
  10. try:
  11. with open(filename, 'rb') as f:
  12. lines = f.readlines()
  13. new_lines = [ws_re.sub(r'\1', line) for line in lines]
  14. if new_lines != lines:
  15. print 'Fixing %s...' % filename
  16. shutil.copyfile(filename, filename + '.bak')
  17. with open(filename, 'wb') as f:
  18. f.writelines(new_lines)
  19. except Exception, err:
  20. print 'Cannot fix %s: %s' % (filename, err)
  21. rv = 1
  22. return rv
  23. if __name__ == '__main__':
  24. sys.exit(main())