X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=scripts%2Fupdate_copyright.py;fp=scripts%2Fupdate_copyright.py;h=0000000000000000000000000000000000000000;hb=fbaf85bab44f8aaf4832fad8db483dae5f3b3bfa;hp=7354dab8ce8fdf10edd3cd2336d5ff157b01fffa;hpb=0e4e26b432e629ae26f1f1dd3b0b0f9c1a57868f;p=ctsim.git diff --git a/scripts/update_copyright.py b/scripts/update_copyright.py deleted file mode 100755 index 7354dab..0000000 --- a/scripts/update_copyright.py +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/python - -''' -This script updates the copyright license lines for all files within a -particular directory. - -usage: - $ python scripts/update_copyright.py -''' - -import os -import sys -import re - -def usage(): - print __doc__ - -if len(sys.argv) != 2: - sys.stderr.write("error: please provide an input directory\n") - usage() - sys.exit(-1) -elif sys.argv[1] in ('-h','--help'): - usage() - sys.exit(0) - -# new copyright -newcopy = '''\ -Copyright (c) 2007 - 2015 Joseph Gaeddert - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE.'''.splitlines() - -# add new line character to end of each line -for i in xrange(len(newcopy)): - newcopy[i] += '\n' - -rootdir = sys.argv[1] - -# specific files to ignore -ignore_files = ['update_copyright.py',] - -# directories to ignore -ignore_directories = ['.git',] - -# only look at these extensions -include_extensions = ['.h', '.c', '.md', '.tex', '.ac', '.in', '.m',] - -# print alignment for status -align = 56 - -# -def update_copyright(filename=""): - """ - Update copyright on file. - """ - # try to open file - contents = [] - with open( filename, 'r' ) as f: - # read lines from file (removing newline character at end) - for line in f: - #contents.append(line.strip('\n\r')) - contents.append(line) - - # parse contents - index_start = -1 - index_stop = -1 - - # search for copyright; starts at top of file - for i in range(min(10, len(contents))): - if re.search(r'Copyright .* Joseph Gaeddert',contents[i]): - index_start = i - break - - if index_start == -1: - print " " + filename + ":" + " "*(align-len(filename)) + "no copyright found" - return - - # look for end of copyright - #for i in range(index_start+15,index_start+15+min(10, len(contents))): - i = index_start + 15 - if re.search(r'along with liquid. If not, see',contents[i]): - index_stop = i - elif re.search(r'AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM',contents[i]): - print " " + filename + ":" + " "*(align-len(filename)) + "copyright already updated" - return - else: - print " " + filename + ":" + " "*(align-len(filename)) + "could not find end of copyright" - return - - # check comment type - m = re.search(r'^( \*|#+) +Copyright',contents[index_start]) - if m: - comment = m.group(1) - else: - raise Exception('unexpected error') - - # delete items in list - contents.__delslice__(index_start, index_stop+1) - - # insert new copyright - for i in range(len(newcopy)): - # only add space after comment characters if string is not empty - # (e.g. print ' *' instead of ' * ') - space = ' ' if len(newcopy[i].strip()) > 0 else '' - - # insert new comment - contents.insert(index_start+i, comment + space + newcopy[i]) - - # open original file for writing - with open( filename, 'w' ) as f: - for line in contents: - f.write(line) - - print " " + filename + ":" + " "*(align-len(filename)) + "updated" - -# -for root, subFolders, files in os.walk(rootdir): - - # strip off leading './' if it exists - if root.startswith('./'): - root = root[2:] - - # print root directory - print root - - # ignore certain directories - if root in ignore_directories: - print "(skipping directory)" - continue - - # print subfolders - #for folder in subFolders: - # print "%s has subdirectory %s" % (root, folder) - - # parse each filename in directory - for filename in files: - filePath = os.path.join(root, filename) - - # check filename - if filePath in ignore_files: - print " " + filePath + ":" + " "*(align-len(filePath)) + "ignoring this specific file" - continue; - - # check filename extension - baseName, extension = os.path.splitext(filename) - if extension not in include_extensions: - print " " + filePath + ":" + " "*(align-len(filePath)) + "improper extension; ignoring file" - continue; - - # continue on with this file - update_copyright(filePath) - -