@ -276,13 +276,14 @@ def color_text(color_enabled, color, string):
else :
return string
def show_diff ( a , b , file_path ) :
def show_diff ( a , b , file_path , color_enabled ) :
""" Show unidified diff.
Arguments :
a : A list of lines ( before )
b : A list of lines ( after )
file_path : Path to the file
color_enabled : Display the diff in color
"""
diff = difflib . unified_diff ( a , b ,
@ -290,7 +291,12 @@ def show_diff(a, b, file_path):
tofile = os . path . join ( ' b ' , file_path ) )
for line in diff :
print line ,
if line [ 0 ] == ' - ' and line [ 1 ] != ' - ' :
print color_text ( color_enabled , COLOR_RED , line ) ,
elif line [ 0 ] == ' + ' and line [ 1 ] != ' + ' :
print color_text ( color_enabled , COLOR_GREEN , line ) ,
else :
print line ,
def update_cross_compile ( color_enabled ) :
""" Update per-arch CROSS_COMPILE via environment variables
@ -388,14 +394,14 @@ def extend_matched_lines(lines, matched, pre_patterns, post_patterns, extend_pre
matched + = extended_matched
matched . sort ( )
def cleanup_one_header ( header_path , patterns , dry_run ) :
def cleanup_one_header ( header_path , patterns , options ) :
""" Clean regex-matched lines away from a file.
Arguments :
header_path : path to the cleaned file .
patterns : list of regex patterns . Any lines matching to these
patterns are deleted .
dry_run : make no changes , but still display log .
options : option flags .
"""
with open ( header_path ) as f :
lines = f . readlines ( )
@ -436,21 +442,21 @@ def cleanup_one_header(header_path, patterns, dry_run):
for i in reversed ( matched ) :
tolines . pop ( i )
show_diff ( lines , tolines , header_path )
show_diff ( lines , tolines , header_path , options . color )
if dry_run :
if options . dry_run :
return
with open ( header_path , ' w ' ) as f :
for line in tolines :
f . write ( line )
def cleanup_headers ( configs , dry_run ) :
def cleanup_headers ( configs , options ) :
""" Delete config defines from board headers.
Arguments :
configs : A list of CONFIGs to remove .
dry_run : make no changes , but still display log .
options : option flags .
"""
while True :
choice = raw_input ( ' Clean up headers? [y/n]: ' ) . lower ( )
@ -473,7 +479,7 @@ def cleanup_headers(configs, dry_run):
for filename in filenames :
if not fnmatch . fnmatch ( filename , ' *~ ' ) :
cleanup_one_header ( os . path . join ( dirpath , filename ) ,
patterns , dry_run )
patterns , options )
### classes ###
class Progress :
@ -1145,7 +1151,7 @@ def main():
move_config ( configs , options )
if configs :
cleanup_headers ( configs , options . dry_run )
cleanup_headers ( configs , options )
if __name__ == ' __main__ ' :
main ( )