aboutsummaryrefslogtreecommitdiff
path: root/tools/refactoring/addfileheader.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/refactoring/addfileheader.py')
-rw-r--r--tools/refactoring/addfileheader.py163
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