summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)