| 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() |