diff options
| -rwxr-xr-x | BuildTools/CheckTabs.py | 60 | ||||
| -rwxr-xr-x | BuildTools/Copyrighter.py | 23 | ||||
| -rwxr-xr-x | BuildTools/Git/Hooks/pre-commit | 23 | 
3 files changed, 42 insertions, 64 deletions
| diff --git a/BuildTools/CheckTabs.py b/BuildTools/CheckTabs.py index c685fc4..e007a68 100755 --- a/BuildTools/CheckTabs.py +++ b/BuildTools/CheckTabs.py @@ -4,38 +4,28 @@ import os, sys  foundExpandedTabs = False -for (path, dirs, files) in os.walk(".") : -	if not "3rdParty" in path and not ".sconf" in path and not ".framework" in path and not path.startswith("build") : -		for filename in [os.path.join(path, file) for file in files if (file.endswith(".cpp") or file.endswith(".h")) and not "ui_" in file and not "moc_" in file and not "qrc_" in file] : -			file = open(filename, "r") -			contents = [] -			contentsChanged = False -			for line in file.readlines() : -				newline = "" -				previousChar = None -				pastInitialSpace = False -				for char in line : -					if not pastInitialSpace : -						if char == ' ' and previousChar == ' ' : -							contentsChanged = True -							previousChar = '\t' -							continue -						pastInitialSpace = (char != ' ') -					if previousChar : -						newline += previousChar -					previousChar = char -				if previousChar : -					newline += previousChar -				contents.append(newline) -			file.close() -			if contentsChanged : -				if len(sys.argv) > 1 and sys.argv[1] == "--fix" : -					print("Fixing tabs in " + filename) -					file = open(filename, "w") -					file.write(''.join(contents)) -					file.close() -				else : -					foundExpandedTabs = True -					print(filename + " contains expanded tabs") - -sys.exit(foundExpandedTabs) +filename = sys.argv[1] +if (filename.endswith(".cpp") or filename.endswith(".h")) and not "3rdParty" in filename :  +  file = open(filename, "r") +  contents = [] +  contentsChanged = False +  for line in file.readlines() : +    newline = "" +    previousChar = None +    pastInitialSpace = False +    for char in line : +      if not pastInitialSpace : +        if char == ' ' and previousChar == ' ' : +          contentsChanged = True +          previousChar = '\t' +          continue +        pastInitialSpace = (char != ' ') +      if previousChar : +        newline += previousChar +      previousChar = char +    if previousChar : +      newline += previousChar +    contents.append(newline) +  file.close() +  if contentsChanged : +    sys.exit(-1) diff --git a/BuildTools/Copyrighter.py b/BuildTools/Copyrighter.py index 248873b..ccb2019 100755 --- a/BuildTools/Copyrighter.py +++ b/BuildTools/Copyrighter.py @@ -129,29 +129,14 @@ def set_copyright(filename, copyright) :    file.close()  if sys.argv[1] == "check-copyright" : -  if not check_copyright(sys.argv[2]) : -    sys.exit(-1) -elif sys.argv[1] == "check-all-copyrights" : -  ok = True -  for (path, dirs, files) in os.walk(".") : -    if "3rdParty" in path or ".sconf" in path or "Swift.app" in path or path.startswith("build") or "xmppbench" in path : -      continue -    for filename in [os.path.join(path, file) for file in files if (file.endswith(".cpp") or file.endswith(".h")) and not "ui_" in file and not "moc_" in file and not "qrc_" in file and not "BuildVersion.h" in file and not "Swiften.h" in file and not "Version.h" in file and not "swiften-config.h" in file and not "linit.cpp" in file ] : -      ok &= check_copyright(filename)  -  if not ok : -    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) -elif sys.argv[1] == "set-all-copyrights" : -  (username, email) = get_userinfo() -  copyright = get_copyright(username, email) -  for (path, dirs, files) in os.walk(".") : -    if "3rdParty" in path or ".sconf" in path or "Swift.app" in path : -      continue -    for filename in [os.path.join(path, file) for file in files if (file.endswith(".cpp") or file.endswith(".h")) and not "ui_" in file and not "moc_" in file and not "qrc_" in file and not "BuildVersion.h" in file and not "swiften-config.h" in file] : -      set_copyright(filename, copyright)   else :    print "Unknown command: " + sys.argv[1]    sys.exit(-1) diff --git a/BuildTools/Git/Hooks/pre-commit b/BuildTools/Git/Hooks/pre-commit index 8130ad6..28bebfc 100755 --- a/BuildTools/Git/Hooks/pre-commit +++ b/BuildTools/Git/Hooks/pre-commit @@ -1,13 +1,16 @@  #!/bin/sh -echo "Checking tabs ..." -if ! BuildTools/CheckTabs.py; then -	echo "Expanded tabs found. Aborting commit." -	exit -1 -fi +IFS=' +' -echo "Checking copyrights ..." -if ! BuildTools/Copyrighter.py check-all-copyrights; then -	echo "Copyright error found. Aborting commit." -	exit -1 -fi +echo "Checking tabs & copyrights ..." +for file in $(git diff --cached --name-only); do +	if ! BuildTools/CheckTabs.py $file; then +		echo "ERROR: '$file' contains expanded tabs. Aborting commit." +		exit -1 +	fi +	if ! BuildTools/Copyrighter.py check-copyright $file; then +		echo "ERROR: '$file' has a copyright error. Aborting commit." +		exit -1 +	fi +done | 
 Swift
 Swift