diff options
| author | Sworddragon <sworddragon2@aol.com> | 2010-11-20 11:36:48 +0100 |
|---|---|---|
| committer | oy <Tom_Adams@web.de> | 2010-11-20 21:23:28 +0100 |
| commit | d7b623f5321c13e82b8c5f5b4573be9cf1eaa568 (patch) | |
| tree | 854a89a827e2560121cc04a4950175cd8dcdc16e /scripts/copyright.py | |
| parent | 32e52d51ceeebc36d4ad520f730ba8ac4009d8a9 (diff) | |
| download | zcatch-d7b623f5321c13e82b8c5f5b4573be9cf1eaa568.tar.gz zcatch-d7b623f5321c13e82b8c5f5b4573be9cf1eaa568.zip | |
Updated copyright.py
Diffstat (limited to 'scripts/copyright.py')
| -rwxr-xr-x | scripts/copyright.py | 78 |
1 files changed, 58 insertions, 20 deletions
diff --git a/scripts/copyright.py b/scripts/copyright.py index 051eb4ac..29e1bbfe 100755 --- a/scripts/copyright.py +++ b/scripts/copyright.py @@ -1,26 +1,64 @@ -import sys, os +import os, re, sys +match = re.search("(.*?)/[^/]*?$", sys.argv[0]) +if match != None: + os.chdir(os.getcwd() + "/" + match.group(1)) -notice = "/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */\n" +notice = [b"/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */\n", b"/* If you are missing that file, acquire a complete release at teeworlds.com. */\n"] +exclude = ["../src%sengine%sexternal" % (os.sep, os.sep), "../src%sosxlaunch" % os.sep] +updated_files = 0 def fix_copyright_notice(filename): + global updated_files f = open(filename, "rb") lines = f.readlines() f.close() - - if "/*" in lines[0] and "copyright" in lines[0]: - lines[0] = notice - else: - lines = [notice] + lines - file(filename, "wb").writelines(lines) - -for root, dirs, files in os.walk("src"): - for name in files: - filename = os.path.join(root, name) - process = 0 - if ".h" == filename[-2:] or ".c" == filename[-2:] or ".cpp" == filename[-4:]: - process = 1 - if os.sep + "external" + os.sep in filename: - process = 0 - - if process: - fix_copyright_notice(filename) + + i = 0 + length_lines = len(lines) + if length_lines > 0: + while i <= length_lines and (lines[i].decode("utf-8").lstrip()[:2] == "//" or lines[i].decode("utf-8").lstrip()[:2] == "/*" and lines[i].decode("utf-8").rstrip()[-2:] == "*/") and ("Magnus" in lines[i].decode("utf-8") or "magnus" in lines[i].decode("utf-8") or "Auvinen" in lines[i].decode("utf-8") or "auvinen" in lines[i].decode("utf-8") or "license" in lines[i].decode("utf-8") or "teeworlds" in lines[i].decode("utf-8")): + i += 1 + length_notice = len(notice) + if i > 0: + j = 0 + while lines[j] == notice[j]: + j += 1 + if j == length_notice: + return + k = j + j = 0 + while j < length_notice -1 - k: + lines = [notice[j]] + lines + j += 1 + while j < length_notice: + lines[j] = notice[j] + j += 1 + if length_lines == 0 or i == 0: + j = length_notice - 1 + while j >= 0: + lines = [notice[j]] + lines + j -= 1 + open(filename, "wb").writelines(lines) + updated_files += 1 + +skip = False +for root, dirs, files in os.walk("../src"): + for excluding in exclude: + if root[:len(excluding)] == excluding: + skip = True + break + if skip == True: + skip = False + continue + for name in files: + filename = os.path.join(root, name) + + if filename[-2:] != ".c" and filename[-4:] != ".cpp" and filename[-2:] != ".h": + continue + + fix_copyright_notice(filename) + +output = "file" +if updated_files != 1: + output += "s" +print("*** updated %d %s ***" % (updated_files, output)) |