summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'BuildTools/Copyrighter.py')
-rwxr-xr-xBuildTools/Copyrighter.py218
1 files changed, 109 insertions, 109 deletions
diff --git a/BuildTools/Copyrighter.py b/BuildTools/Copyrighter.py
index ccb2019..56fcf01 100755
--- a/BuildTools/Copyrighter.py
+++ b/BuildTools/Copyrighter.py
@@ -8,135 +8,135 @@ CONTRIBUTOR_LICENSE = "mit"
LICENSE_DIR = "Documentation/Licenses"
class License :
- def __init__(self, name, file) :
- self.name = name
- self.file = file
+ def __init__(self, name, file) :
+ self.name = name
+ self.file = file
licenses = {
- "gpl3" : License("GNU General Public License v3", "GPLv3.txt"),
- "mit" : License("MIT License", "MIT.txt"),
- }
+ "gpl3" : License("GNU General Public License v3", "GPLv3.txt"),
+ "mit" : License("MIT License", "MIT.txt"),
+ }
class Copyright :
- def __init__(self, author, year, license) :
- self.author = author
- self.year = year
- self.license = license
-
- def to_string(self, comment_chars) :
- return "\n".join([
- comment_chars[0],
- comment_chars[1] + " Copyright (c) %(year)s %(name)s" % {"year" : self.year, "name" : self.author },
- comment_chars[1] + " Licensed under the " + licenses[self.license].name + ".",
- comment_chars[1] + " See " + LICENSE_DIR + "/" + licenses[self.license].file + " for more information.",
- comment_chars[2],
- "\n"])
+ def __init__(self, author, year, license) :
+ self.author = author
+ self.year = year
+ self.license = license
+
+ def to_string(self, comment_chars) :
+ return "\n".join([
+ comment_chars[0],
+ comment_chars[1] + " Copyright (c) %(year)s %(name)s" % {"year" : self.year, "name" : self.author },
+ comment_chars[1] + " Licensed under the " + licenses[self.license].name + ".",
+ comment_chars[1] + " See " + LICENSE_DIR + "/" + licenses[self.license].file + " for more information.",
+ comment_chars[2],
+ "\n"])
def get_comment_chars_for_filename(filename) :
- return ("/*", " *", " */")
+ return ("/*", " *", " */")
def get_comment_chars_re_for_filename(filename) :
- comment_chars = get_comment_chars_for_filename(filename)
- return "|".join(comment_chars).replace("*", "\\*")
+ comment_chars = get_comment_chars_for_filename(filename)
+ return "|".join(comment_chars).replace("*", "\\*")
def parse_file(filename) :
- file = open(filename)
- copyright_text = []
- prolog = ""
- epilog = ""
- inProlog = True
- inCopyright = False
- inEpilog = False
- for line in file.readlines() :
- if inProlog :
- if line.startswith("#!") or len(line.strip()) == 0 :
- prolog += line
- continue
- else :
- inProlog = False
- inCopyright = True
-
- if inCopyright :
- if re.match(get_comment_chars_re_for_filename(filename), line) != None :
- copyright_text.append(line.rstrip())
- continue
- else :
- inCopyright = False
- inEpilog = True
- if len(line.strip()) == 0 :
- continue
-
- if inEpilog :
- epilog += line
- continue
-
- file.close()
-
- # Parse the copyright
- copyright = None
- if len(copyright_text) == 5 :
- comment_chars = get_comment_chars_for_filename(filename)
- if copyright_text[0] == comment_chars[0] and copyright_text[4] == comment_chars[2] :
- matchstring = "(" + get_comment_chars_re_for_filename(filename) + ") Copyright \(c\) (?P<startYear>\d\d\d\d)(-(?P<endYear>\d\d\d\d))? (?P<author>.*)"
- m = re.match(matchstring, copyright_text[1])
- if m != None :
- # FIXME: Do better copyright reconstruction here
- copyright = True
- if not copyright :
- epilog = "\n".join(copyright_text) + epilog
- return (prolog, copyright, epilog)
+ file = open(filename)
+ copyright_text = []
+ prolog = ""
+ epilog = ""
+ inProlog = True
+ inCopyright = False
+ inEpilog = False
+ for line in file.readlines() :
+ if inProlog :
+ if line.startswith("#!") or len(line.strip()) == 0 :
+ prolog += line
+ continue
+ else :
+ inProlog = False
+ inCopyright = True
+
+ if inCopyright :
+ if re.match(get_comment_chars_re_for_filename(filename), line) != None :
+ copyright_text.append(line.rstrip())
+ continue
+ else :
+ inCopyright = False
+ inEpilog = True
+ if len(line.strip()) == 0 :
+ continue
+
+ if inEpilog :
+ epilog += line
+ continue
+
+ file.close()
+
+ # Parse the copyright
+ copyright = None
+ if len(copyright_text) == 5 :
+ comment_chars = get_comment_chars_for_filename(filename)
+ if copyright_text[0] == comment_chars[0] and copyright_text[4] == comment_chars[2] :
+ matchstring = "(" + get_comment_chars_re_for_filename(filename) + ") Copyright \(c\) (?P<startYear>\d\d\d\d)(-(?P<endYear>\d\d\d\d))? (?P<author>.*)"
+ m = re.match(matchstring, copyright_text[1])
+ if m != None :
+ # FIXME: Do better copyright reconstruction here
+ copyright = True
+ if not copyright :
+ epilog = "\n".join(copyright_text) + epilog
+ return (prolog, copyright, epilog)
def get_userinfo() :
- p = subprocess.Popen("git config user.name", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
- username = p.stdout.read().rstrip()
- p.stdin.close()
- if p.wait() != 0 :
- return None
- p = subprocess.Popen("git config user.email", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
- email = p.stdout.read().rstrip()
- p.stdin.close()
- if p.wait() != 0 :
- return None
- return (username, email)
+ p = subprocess.Popen("git config user.name", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
+ username = p.stdout.read().rstrip()
+ p.stdin.close()
+ if p.wait() != 0 :
+ return None
+ p = subprocess.Popen("git config user.email", shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=(os.name != "nt"))
+ email = p.stdout.read().rstrip()
+ p.stdin.close()
+ if p.wait() != 0 :
+ return None
+ return (username, email)
def get_copyright(username, email) :
- if email in ["git@el-tramo.be", "git@kismith.co.uk"] :
- license = DEFAULT_LICENSE
- else :
- license = CONTRIBUTOR_LICENSE
- return Copyright(username, datetime.date.today().strftime("%Y"), license)
+ if email in ["git@el-tramo.be", "git@kismith.co.uk"] :
+ license = DEFAULT_LICENSE
+ else :
+ license = CONTRIBUTOR_LICENSE
+ return Copyright(username, datetime.date.today().strftime("%Y"), license)
def check_copyright(filename) :
- (prolog, copyright, epilog) = parse_file(filename)
- if copyright == None :
- print "No copyright found in: " + filename
- #print "Please run '" + sys.argv[0] + " set-copyright " + filename + "'"
- return False
- else :
- return True
+ (prolog, copyright, epilog) = parse_file(filename)
+ if copyright == None :
+ print "No copyright found in: " + filename
+ #print "Please run '" + sys.argv[0] + " set-copyright " + filename + "'"
+ return False
+ else :
+ return True
def set_copyright(filename, copyright) :
- (prolog, c, epilog) = parse_file(filename)
- comment_chars = get_comment_chars_for_filename(filename)
- copyright_text = copyright.to_string(comment_chars)
- file = open(filename, "w")
- if prolog != "":
- file.write(prolog)
- file.write(copyright_text)
- if epilog != "" :
- file.write(epilog)
- file.close()
+ (prolog, c, epilog) = parse_file(filename)
+ comment_chars = get_comment_chars_for_filename(filename)
+ copyright_text = copyright.to_string(comment_chars)
+ file = open(filename, "w")
+ if prolog != "":
+ file.write(prolog)
+ file.write(copyright_text)
+ if epilog != "" :
+ file.write(epilog)
+ file.close()
if sys.argv[1] == "check-copyright" :
- file = sys.argv[2]
- if (file.endswith(".cpp") or file.endswith(".h")) and not "3rdParty" in file :
- if not check_copyright(file) :
- sys.exit(-1)
+ file = sys.argv[2]
+ if (file.endswith(".cpp") or file.endswith(".h")) and not "3rdParty" in file :
+ if not check_copyright(file) :
+ sys.exit(-1)
elif sys.argv[1] == "set-copyright" :
- (username, email) = get_userinfo()
- copyright = get_copyright(username, email)
- set_copyright(sys.argv[2], copyright)
+ (username, email) = get_userinfo()
+ copyright = get_copyright(username, email)
+ set_copyright(sys.argv[2], copyright)
else :
- print "Unknown command: " + sys.argv[1]
- sys.exit(-1)
+ print "Unknown command: " + sys.argv[1]
+ sys.exit(-1)