Skip to content
Snippets Groups Projects
Commit 23598a3c authored by David Fugate's avatar David Fugate
Browse files

Renamed AddLicenseHeader.py to FixLicenseHeader.py.

Modified it to switch us over to the Ecma license for everything
except Sputnik-based sources (someone from Google should make
this change on line 60 of FixLicenseHeader.py).
parent 63176422
No related branches found
No related tags found
No related merge requests found
...@@ -9,27 +9,25 @@ import argparse ...@@ -9,27 +9,25 @@ import argparse
import os import os
import sys import sys
import re import re
import codecs
#--Globals--------------------------------------------------------------------- #--Globals---------------------------------------------------------------------
MSFT_LICENSE = '''/// Copyright (c) 2012 Ecma International. All rights reserved. ECMA_LICENSE = '''/// Copyright (c) 2012 Ecma International. All rights reserved.
/// Ecma International makes this code available under the terms and conditions set /// Ecma International makes this code available under the terms and conditions set
/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the /// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
/// "Use Terms"). Any redistribution of this code must retain the above /// "Use Terms"). Any redistribution of this code must retain the above
/// copyright and this notice and otherwise comply with the Use Terms. /// copyright and this notice and otherwise comply with the Use Terms.
''' '''
GOOGLE_LICENSE = '''// Copyright 2011 Google Inc. All rights reserved. NEW_LICENSE_FIRST_LINE = re.compile(r"Copyright\s+\(c\)\s+20[0-9][0-9]\s+Ecma\s+International")
// This code is governed by the BSD license found in the LICENSE file. OLD_LICENSE_FIRST_LINE = re.compile(r"(Copyright\s+20[0-9][0-9]\s+Google)|(the\s+Sputnik\s+authors)|(Microsoft\s+Corporation)")
''' OLD_LICENSE_LAST_LINE = re.compile(r"(ADVISED\s+OF\s+THE\s+POSSIBILITY\s+OF\s+SUCH\s+DAMAGE)|(This\s+code\s+is\s+governed\s+by\s+the\s+BSD\s+license\s+found\s+in\s+the\s+LICENSE\s+file)")
#Dirty way of determining if the contribution stems from Google or Microsoft
GOOGLE_RE = re.compile(r"[\\/]S([0-9]+)|(bp)(\.|_)[^\\/]+\.js$") GOOGLE_RE = re.compile(r"[\\/]S([0-9]+)|(bp)(\.|_)[^\\/]+\.js$")
GOOGLE_LINE_ONE = re.compile(r"(Copyright\s+20[0-9][0-9]\s+Google)|(the Sputnik authors)") IETC_RE = re.compile(r"[\\/][0-9]+(\.|_)[^\\/]+\.js$")
IETC_RE = re.compile(r"[\\/][0-9]+\.[^\\/]+\.js$")
IETC_LINE_ONE = re.compile(r"Microsoft Corporation")
DEBUG = False
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
def getAllJSFiles(dirName): def getAllJSFiles(dirName):
''' '''
...@@ -53,27 +51,45 @@ def handleFile(filePath): ...@@ -53,27 +51,45 @@ def handleFile(filePath):
with open(filePath, "rb") as f: with open(filePath, "rb") as f:
origLines = f.readlines() origLines = f.readlines()
#Figure out which license header we'll be using
if GOOGLE_RE.search(filePath)!=None:
licenseHeader = GOOGLE_LICENSE
lineOne = GOOGLE_LINE_ONE
elif IETC_RE.search(filePath)!=None:
licenseHeader = MSFT_LICENSE
lineOne = IETC_LINE_ONE
else:
print "*!!!*:\t", filePath
return
#See if it's already there #See if it's already there
if lineOne.search(origLines[0])!=None: if NEW_LICENSE_FIRST_LINE.search(origLines[0])!=None:
#print "\talready there:\t", filePath
return
#TODO: Google employee needs to remove this elif
# and fix the next elif clause
elif GOOGLE_RE.search(filePath)!=None:
if DEBUG:
print "\tignoring Google sources:\t", filePath
return return
elif (IETC_RE.search(filePath))==None: #and (GOOGLE_RE.search(filePath)==None):
errMsg = "\tno idea which license should be used for:\t" + filePath
raise Exception(errMsg)
return
with codecs.open(filePath,'r','utf8') as f:
bomPresent = f.read(2).startswith(u"\ufeff")
if bomPresent:
print "\tnon-ASCII file detected. Please modify by hand:", filePath
return
with open(filePath, "wb") as f: with open(filePath, "wb") as f:
print "MODIFIED:\t", filePath if DEBUG:
f.write(licenseHeader) print "\tmodified:\t", filePath
#TODO: this isn't good enough...
#if bomPresent:
# print "\tBOM was detected for:", filePath
# f.write(u"\ufeff")
f.write(ECMA_LICENSE)
writeIt = False
for line in origLines: for line in origLines:
f.write(line) if writeIt:
f.write(line)
elif OLD_LICENSE_LAST_LINE.search(line)!=None:
writeIt = True
if not writeIt:
print "\tError - didn't find end of the original license:\t", filePath
#--Main------------------------------------------------------------------------ #--Main------------------------------------------------------------------------
if __name__=="__main__": if __name__=="__main__":
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment