diff options
Diffstat (limited to 'tools/refactoring/addfileheader.py')
-rw-r--r-- | tools/refactoring/addfileheader.py | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/tools/refactoring/addfileheader.py b/tools/refactoring/addfileheader.py deleted file mode 100644 index 01c8a8b4e1..0000000000 --- a/tools/refactoring/addfileheader.py +++ /dev/null @@ -1,163 +0,0 @@ -#!/usr/bin/env python - -import stringmanipulation -import filemanagement -import sys - -extensions = ['.h','.cc','.c','.cpp'] - -ignore_these = ['my_ignore_header.h'] - -if((len(sys.argv) != 2) and (len(sys.argv) != 3)): - print 'parameters are: directory [--commit]' - quit() - -directory = sys.argv[1]; -if(not filemanagement.pathexist(directory)): - print 'path ' + directory + ' does not exist' - quit() - -if((len(sys.argv) == 3) and (sys.argv[2] != '--commit')): - print 'parameters are: parent directory extension new extension [--commit]' - quit() - -commit = False -if(len(sys.argv) == 3): - commit = True - -files_to_fix = [] -for extension in extensions: - files_to_fix.extend(filemanagement.listallfilesinfolder(directory,\ - extension)) - -# Just steal the header from the template -def fileheaderasstring(): - template_file_name = 'license_template.txt' - if (not filemanagement.fileexist(template_file_name)): - print 'File ' + template_file_name + ' not found!' - quit() - template_file = open(template_file_name,'r') - return_string = '' - for line in template_file: - return_string += line - return return_string - -# Just steal the header from the template -def fileheaderasarray(): - template_file_name = 'license_template.txt' - if (not filemanagement.fileexist(template_file_name)): - print 'File ' + template_file_name + ' not found!' - quit() - template_file = open(template_file_name,'r') - return_value = [] - for line in template_file: - return_value.append(line) - return return_value - - -def findheader(path, file_name): - full_file_name = path + file_name - if (not filemanagement.fileexist(full_file_name)): - print 'File ' + file_name + ' not found!' - print 'Unexpected error!' - quit() - file_handle = open(full_file_name) - template_file_content = fileheaderasarray() - compare_content = [] - # load the same number of lines from file as the fileheader - for index in range(len(template_file_content)): - line = file_handle.readline() - if (line == ''): - return False - compare_content.append(line) - - while (True): - found = True - for index in range(len(template_file_content)): - line1 = template_file_content[index] - line2 = compare_content[index] - if(line1 != line2): - found = False - break - if (found): - return True - compare_content = compare_content[1:len(compare_content)] - line = file_handle.readline() - if (line == ''): - return False - compare_content.append(line) - return False - -# Used to store temporary result before flushing to real file when finished -def temporaryfilename(old_file_name): - return old_file_name + '.deleteme' - -def updatefile(path, old_file_name): - full_old_file_name = path + old_file_name - if (not filemanagement.fileexist(full_old_file_name)): - print 'File ' + full_old_file_name + ' is not found.' - print 'Should not happen! Ever!' - quit() - - full_temporary_file_name = path + temporaryfilename(old_file_name) - - # Make sure that the files are closed by putting them out of scope - old_file = open(full_old_file_name,'r') - temporary_file = open(full_temporary_file_name,'w') - - temporary_file.writelines(fileheaderasstring()) - remove_whitespaces = True - for line in old_file: - if (remove_whitespaces and (len(line.split()) == 0)): - continue - else: - remove_whitespaces = False - temporary_file.writelines(line) - old_file.close() - temporary_file.close() - - filemanagement.copyfile(full_old_file_name,full_temporary_file_name) - filemanagement.deletefile(full_temporary_file_name) - - -failed_files = [] -skipped_files = [] -for index in range(len(files_to_fix)): - if(commit): - print (100*index)/len(files_to_fix) - path_dir = files_to_fix[index][0] - filename = files_to_fix[index][1] - is_ignore = False - for ignore_names in ignore_these: - if(filename == ignore_names): - is_ignore = True - break - if(is_ignore): - continue - -# Let the word copyright be our sanity, i.e. make sure there is only one -# copy right occurance or report that there will be no change - if(filemanagement.findstringinfile(path_dir,filename,'Copyright') or - filemanagement.findstringinfile(path_dir,filename,'copyright') or - filemanagement.findstringinfile(path_dir,filename,'COPYRIGHT')): - if(findheader(path_dir,filename)): - skipped_files.append(path_dir + filename) - else: - failed_files.append(path_dir + filename) - continue - - if (not commit): - print 'File ' + path_dir + filename + ' will be updated' - continue - updatefile(path_dir,filename) - -tense = 'will be' -if (commit): - tense = 'has been' -if (len(skipped_files) > 0): - print str(len(skipped_files)) + ' file(s) ' + tense + ' skipped since they already have the correct header' - -if (len(failed_files) > 0): - print 'Following files seem to have an invalid file header:' -for line in failed_files: - print line |