import os.path | |
def fix_source_eol( path, is_dry_run = True, verbose = True, eol = '\n' ): | |
"""Makes sure that all sources have the specified eol sequence (default: unix).""" | |
if not os.path.isfile( path ): | |
raise ValueError( 'Path "%s" is not a file' % path ) | |
try: | |
f = open(path, 'rb') | |
except IOError, msg: | |
print >> sys.stderr, "%s: I/O Error: %s" % (file, str(msg)) | |
return False | |
try: | |
raw_lines = f.readlines() | |
finally: | |
f.close() | |
fixed_lines = [line.rstrip('\r\n') + eol for line in raw_lines] | |
if raw_lines != fixed_lines: | |
print '%s =>' % path, | |
if not is_dry_run: | |
f = open(path, "wb") | |
try: | |
f.writelines(fixed_lines) | |
finally: | |
f.close() | |
if verbose: | |
print is_dry_run and ' NEED FIX' or ' FIXED' | |
return True | |
## | |
## | |
## | |
##def _do_fix( is_dry_run = True ): | |
## from waftools import antglob | |
## python_sources = antglob.glob( '.', | |
## includes = '**/*.py **/wscript **/wscript_build', | |
## excludes = antglob.default_excludes + './waf.py', | |
## prune_dirs = antglob.prune_dirs + 'waf-* ./build' ) | |
## for path in python_sources: | |
## _fix_python_source( path, is_dry_run ) | |
## | |
## cpp_sources = antglob.glob( '.', | |
## includes = '**/*.cpp **/*.h **/*.inl', | |
## prune_dirs = antglob.prune_dirs + 'waf-* ./build' ) | |
## for path in cpp_sources: | |
## _fix_source_eol( path, is_dry_run ) | |
## | |
## | |
##def dry_fix(context): | |
## _do_fix( is_dry_run = True ) | |
## | |
##def fix(context): | |
## _do_fix( is_dry_run = False ) | |
## | |
##def shutdown(): | |
## pass | |
## | |
##def check(context): | |
## # Unit tests are run when "check" target is used | |
## ut = UnitTest.unit_test() | |
## ut.change_to_testfile_dir = True | |
## ut.want_to_see_test_output = True | |
## ut.want_to_see_test_error = True | |
## ut.run() | |
## ut.print_results() |