1#!/usr/bin/env python 2# prepare content for SDK 3 4import shutil, os, stat 5 6media = '../../../../../media-sdk' 7media = os.path.abspath( media ) 8 9try: 10 shutil.rmtree( 'Doom3_SDK' ) 11except: 12 print 'Could not remove Doom3_SDK' 13 pass 14 15# copy source from list 16f = open( 'source.list' ) 17l = [ s[:-1] for s in f.readlines() ] 18f.close() 19for p in l: 20 sp = os.path.join( '../../..', p ) 21 dp = os.path.join( 'Doom3_SDK/src', p ) 22 try: 23 os.makedirs( os.path.dirname( dp ) ) 24 except: 25 pass 26 print 'cp ' + sp + ' -> ' + dp 27 shutil.copy( sp, dp ) 28 29# copy explicit media content over 30for root, dirs, files in os.walk( media ): 31 if '.svn' in dirs: 32 dirs.remove( '.svn' ) 33 for f in files: 34 sp = os.path.join( root, f ) 35 dp = os.path.join( 'Doom3_SDK', sp[ len( media ) + 1: ] ) 36 try: 37 os.makedirs( os.path.dirname( dp ) ) 38 except: 39 pass 40 print 'cp ' + sp + ' -> ' + dp 41 shutil.copy( sp, dp ) 42 43def makewritable( path ): 44 for root, dirs, files in os.walk( path ): 45 for f in files: 46 os.chmod( os.path.join( root, f ), stat.S_IWRITE ) 47 48# cleanup '.svn' 49for root, dirs, files in os.walk( 'Doom3_SDK' ): 50 if '.svn' in dirs: 51 print 'remove ' + os.path.join( root, '.svn' ) 52 # SVN sets readonly on some files, which causes rmtree failure on win32 53 makewritable( os.path.join( root, '.svn' ) ) 54 shutil.rmtree( os.path.join( root, '.svn' ) ) 55 dirs.remove( '.svn' ) 56