aboutsummaryrefslogtreecommitdiff
path: root/contrib/devtools
diff options
context:
space:
mode:
authorgubatron <gubatron@gmail.com>2014-02-08 16:50:24 -0500
committergubatron <gubatron@gmail.com>2014-02-09 21:06:06 -0500
commit57702541a2009d4b936ebfddeeec3db7f8f74e5c (patch)
tree314cccbf2092aacb388fad9b59f091895fb74572 /contrib/devtools
parent679e92c825a1bc23093ca727476838ced2081355 (diff)
Copyright header updates s/2013/2014 on files whose last git commit was done in 2014.
contrib/devtools/fix-copyright-headers.py script to be able to perform this maintenance task with ease during the rest of the year, every year. Modifications to contrib/devtools/README.md to document what fix-copyright-headers.py does.
Diffstat (limited to 'contrib/devtools')
-rw-r--r--contrib/devtools/README.md11
-rwxr-xr-xcontrib/devtools/fix-copyright-headers.py53
2 files changed, 64 insertions, 0 deletions
diff --git a/contrib/devtools/README.md b/contrib/devtools/README.md
index 55d5d24cca..f0d25fd7a2 100644
--- a/contrib/devtools/README.md
+++ b/contrib/devtools/README.md
@@ -36,3 +36,14 @@ Configuring the github-merge tool for the bitcoin repository is done in the foll
git config githubmerge.testcmd "make -j4 check" (adapt to whatever you want to use for testing)
git config --global user.signingkey mykeyid (if you want to GPG sign)
+## fix-copyright-headers.py
+
+Every year newly updated files need to have its copyright headers updated to reflect the current year.
+If you run this script from src/ it will automatically update the year on the copyright header for all
+.cpp and .h files if these have a git commit from the current year.
+
+For example a file changed in 2014 (with 2014 being the current year):
+```// Copyright (c) 2009-2013 The Bitcoin developers```
+
+would be changed to:
+```// Copyright (c) 2009-2014 The Bitcoin developers``` \ No newline at end of file
diff --git a/contrib/devtools/fix-copyright-headers.py b/contrib/devtools/fix-copyright-headers.py
new file mode 100755
index 0000000000..52fdc99144
--- /dev/null
+++ b/contrib/devtools/fix-copyright-headers.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+'''
+Run this script inside of src/ and it will look for all the files
+that were changed this year that still have the last year in the
+copyright headers, and it will fix the headers on that file using
+a perl regex one liner.
+
+For example: if it finds something like this and we're in 2014
+
+// Copyright (c) 2009-2013 The Bitcoin developers
+
+it will change it to
+
+// Copyright (c) 2009-2014 The Bitcoin developers
+
+It will do this for all the files in the folder and its children.
+
+Author: @gubatron
+'''
+import os
+import time
+
+year = time.gmtime()[0]
+last_year = year - 1
+command = "perl -pi -e 's/%s The Bitcoin/%s The Bitcoin/' %s"
+listFilesCommand = "find . | grep %s"
+
+extensions = [".cpp",".h"]
+
+def getLastGitModifiedDate(filePath):
+ gitGetLastCommitDateCommand = "git log " + filePath +" | grep Date | head -n 1"
+ p = os.popen(gitGetLastCommitDateCommand)
+ result = ""
+ for l in p:
+ result = l
+ break
+ result = result.replace("\n","")
+ return result
+
+n=1
+for extension in extensions:
+ foundFiles = os.popen(listFilesCommand % extension)
+ for filePath in foundFiles:
+ filePath = filePath[1:-1]
+ if filePath.endswith(extension):
+ filePath = os.getcwd() + filePath
+ modifiedTime = getLastGitModifiedDate(filePath)
+ if len(modifiedTime) > 0 and str(year) in modifiedTime:
+ print n,"Last Git Modified: ", modifiedTime, " - ", filePath
+ os.popen(command % (last_year,year,filePath))
+ n = n + 1
+
+