summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2016-07-06 09:58:07 (GMT)
committerKevin Smith <kevin.smith@isode.com>2016-07-06 14:30:31 (GMT)
commit3fa22716004703f05fc08c12726fadfd91da9d34 (patch)
treefe741b9ffe769c5419735776ce099d30397891cf
parent7cef6f46bdd570cf0d4887336197723ae07a8097 (diff)
downloadswift-3fa22716004703f05fc08c12726fadfd91da9d34.zip
swift-3fa22716004703f05fc08c12726fadfd91da9d34.tar.bz2
Add script to produce summary of copyright headers
Test-Information: Added debug output and checked that each file that was not automatically generated at build time was taken into account and had at least one copyright name extracted. Tested some samples that the names returned are correct. Change-Id: Ie652c78ecd0b91247e68fa6963a3f9a3a632fc66
-rwxr-xr-xBuildTools/ProjectCopyrightSummary.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/BuildTools/ProjectCopyrightSummary.py b/BuildTools/ProjectCopyrightSummary.py
new file mode 100755
index 0000000..6e2d824
--- /dev/null
+++ b/BuildTools/ProjectCopyrightSummary.py
@@ -0,0 +1,32 @@
+#!/usr/bin/env python
+
+import fnmatch
+import os
+import re
+from sets import Set
+
+projectSourceFiles = []
+for directory in ['Documentation', 'Limber', 'Packages', 'QA', 'Slimber', 'Sluift', 'Swift', 'Swiften', 'SwifTools']:
+ for root, dirnames, filenames in os.walk(directory):
+ for filename in filenames:
+ if any(fnmatch.fnmatch(filename, pattern) for pattern in ['*.cpp', '*.h', '*.mm', '*.m', '*.c']):
+ projectSourceFiles.append(os.path.join(root, filename))
+
+
+def CopyrightNames(filename):
+ names = []
+ with open(filename, 'r') as file:
+ data = file.read()
+ p = re.compile(ur'\* Copyright.*\d\d\d\d (.*?)\.?$', re.MULTILINE)
+ names = re.findall(p, data)
+ return names
+
+
+names = Set()
+for file in projectSourceFiles:
+ copyrightNames = CopyrightNames(file)
+ for name in copyrightNames:
+ names.add(name)
+
+for name in sorted(list(names)):
+ print(name)