You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
3.5 KiB
177 lines
3.5 KiB
#!/usr/bin/python |
|
# ========= Copyright Valve Corporation, All rights reserved. ============ |
|
|
|
import subprocess |
|
import re |
|
import os |
|
import sys |
|
|
|
reValve = re.compile( "valve", flags = re.IGNORECASE ) |
|
reTurtleRock = re.compile( "turtle rock", flags = re.IGNORECASE ) |
|
reCopyright = re.compile( "copyright", flags = re.IGNORECASE ) |
|
sOutputCopyright = "//========= Copyright Valve Corporation, All rights reserved. ============//\n" |
|
|
|
def IsOldCopyrightLine( line ): |
|
if( len( reCopyright.findall( line ) ) == 0 ): |
|
return False |
|
if( len( reValve.findall( line ) ) == 0 |
|
and len( reTurtleRock.findall( line ) ) == 0 ): |
|
return False |
|
|
|
return True |
|
|
|
|
|
rFilesWithNoCopyrightNotice = [] |
|
|
|
def FixCopyrightNotice( sFullPath ): |
|
nLine = 0 |
|
|
|
f = open( sFullPath, "r" ) |
|
if( not f ): |
|
print( "Unable to open file " + sFullPath + "\n" ) |
|
return |
|
|
|
rFileContents = f.readlines() |
|
f.close() |
|
nOldCopyright = -1 |
|
for line in rFileContents: |
|
if( nLine < 10 ): |
|
if( line == sOutputCopyright ): |
|
# File already has the right notice |
|
return |
|
if( IsOldCopyrightLine( line ) ): |
|
nOldCopyright = nLine |
|
break |
|
|
|
nLine += 1 |
|
if( nOldCopyright == -1 ): |
|
rFilesWithNoCopyrightNotice.append( sFullPath ) |
|
rFileContents.insert( 0, sOutputCopyright ) |
|
else: |
|
rFileContents[ nOldCopyright ] = sOutputCopyright |
|
|
|
# open the file for edit |
|
subprocess.call( [ "p4", "edit", sFullPath ], stdout = subprocess.PIPE ) |
|
|
|
# open the file for writing |
|
f = open( sFullPath, "w" ) |
|
f.writelines( rFileContents ) |
|
f.close() |
|
|
|
rDirsToSkip = [ |
|
'thirdparty', |
|
'external', |
|
'BinkSDK', |
|
'bink', |
|
'bink_x360', |
|
'freetype', |
|
'GL', |
|
'maya', |
|
'miles', |
|
'curl', |
|
'ihfx', |
|
'lxma', |
|
'modo', |
|
'openal', |
|
'opengl', |
|
'p4api', |
|
'python', |
|
'quicktime_win32', |
|
'xsi', |
|
'speex', |
|
'ocaml', |
|
'perl5', |
|
'dx10sdk', |
|
'dx11sdk', |
|
'dx9sdk', |
|
'haptics', |
|
'ajb', |
|
'stb', |
|
'havok', |
|
'hk_physics', |
|
'lua', |
|
'maxsdk', |
|
'x360xdk', |
|
'swigwin-1.3.34', |
|
'sapi51', |
|
'WMPSDK10', |
|
'FontMaker', |
|
'mxtk', |
|
'nvtristriplib', |
|
'g15', |
|
'lzma', |
|
'libparsifal-0.8.3', |
|
'parsifal', |
|
'libpng', |
|
'mysql', |
|
'zip', |
|
'zlib', |
|
'Zlib', |
|
'windowssdk', |
|
'bzip2', |
|
'jpeglib', |
|
'MakeGameData', |
|
'toollib', |
|
] |
|
|
|
rFileExtensionsToSkip = [ |
|
'.pb.h', |
|
'.pb.cpp', |
|
'.spa.h', |
|
'ATI_Compress.h', |
|
'luaxlib.h', |
|
'lua.h', |
|
'luaconf.h', |
|
'lualib.h', |
|
'eax.h', |
|
'IceKey.cpp', |
|
'nvtc.h', |
|
'amd3dx.h', |
|
'halton.h', |
|
'snappy', |
|
'extendedtrace', |
|
] |
|
|
|
def FixCopyrightNoticeWalk( sPath ): |
|
for root, dirs, files in os.walk( sPath ): |
|
print "Walking directory", root |
|
#print root, dirs |
|
for sDir in rDirsToSkip: |
|
if sDir in dirs: |
|
print "Skipping dir ", os.path.join( root, sDir ) |
|
dirs.remove( sDir ) |
|
|
|
for sFilename in files: |
|
sShortFilename, sFileExt = os.path.splitext( sFilename ) |
|
|
|
if( sFileExt in [ '.cpp', '.h' ] ): |
|
bSkip = False |
|
for sExt in rFileExtensionsToSkip: |
|
if sExt in sFilename: |
|
bSkip = True |
|
|
|
#print "filename=", sFilename |
|
if( bSkip ): |
|
print "Skipping ", sFilename, "because of its extension" |
|
else: |
|
FixCopyrightNotice( os.path.join( root, sFilename ) ) |
|
|
|
|
|
#FixCopyrightNotice( os.path.join( "..", "..", "bitmap", "bitmap.cpp" ) ) |
|
#FixCopyrightNoticeWalk( os.path.join( "..", "..", "bitmap" ) ) |
|
|
|
if( len( sys.argv ) != 2 ): |
|
print "Usage: fixcopyrights.py <path>" |
|
sys.exit(1) |
|
|
|
FixCopyrightNoticeWalk( sys.argv[1] ) |
|
|
|
if( len( rFilesWithNoCopyrightNotice ) ): |
|
|
|
f = open( "newcopyrights.txt", "w" ) |
|
for file in rFilesWithNoCopyrightNotice: |
|
f.write( file + "\n" ) |
|
f.close() |
|
|
|
print "Copyright notices added to", len( rFilesWithNoCopyrightNotice ), "files. See newcopyrights.txt for a list\n" |
|
|
|
|