X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=blobdiff_plain;f=config.py;h=a1dad7c4c73ed52718e42956da7cee6106354f3b;hp=91d0c88a322715391d6266548553bd25ac11c714;hb=85a66c95194d3c608040bc93bd7c241ec323c095;hpb=772fdfe0b9140ab81b9a9238f240f65a831bb618 diff --git a/config.py b/config.py index 91d0c88a..a1dad7c4 100644 --- a/config.py +++ b/config.py @@ -3,7 +3,7 @@ import sys, traceback, platform, re, commands, platform, subprocess if __name__ != '__main__': from SCons.Script import * -import utils +import utils, urllib2, zipfile, shutil # config = debug release # aliases are going to be very needed here @@ -262,9 +262,21 @@ class Config: def FetchGamePaks( self, path ): for pak in self.setup_packs: if ( pak == 'Q3Pack' or pak == 'UrTPack' or pak == 'UFOAIPack' or pak == 'Q2WPack' or pak == 'ReactionPack' ): - svnurl = 'https://zerowing.idsoftware.com/svn/radiant.gamepacks/%s/trunk' % pak + svnurl = 'svn://svn.icculus.org/gtkradiant-gamepacks/%s/trunk' % pak self.CheckoutOrUpdate( svnurl, os.path.join( path, 'installs', pak ) ) + def CopyTree( self, src, dst): + for root, dirs, files in os.walk( src ): + target_dir = os.path.join( dst, root[root.find( '/' )+1:] ) + print ( target_dir ) + if ( not os.path.exists( target_dir ) ): + os.mkdir( target_dir ) + + for file in files: + shutil.copy( os.path.join( root, file ), os.path.join( target_dir, file ) ) + + + def Setup( self ): try: self.setup_platforms.index( 'local' ) @@ -284,14 +296,26 @@ class Config: 'STLport-5.2.1-4.zip' ]: if ( not os.path.exists( lib_archive ) ): - cmd = [ 'wget', '-N', 'http://zerowing.idsoftware.com/files/radiant/developer/1.6.2/%s' % lib_archive ] - print( repr( cmd ) ) - subprocess.check_call( cmd ) + print( 'downloading %s' % lib_archive ) + archive_web_request = urllib2.urlopen( 'http://icculus.org/gtkradiant/files/1.6.2/%s' % lib_archive ) + archive_File = open( lib_archive, 'wb' ) + while True: + data = archive_web_request.read( 1048576 ) #read 1mb at a time + if not data: + break + archive_File.write( data ) + + archive_web_request.close() + archive_File.close() + + print( 'unpacking %s' % lib_archive ) lib_archive_path = os.path.abspath( lib_archive ) os.chdir( os.path.dirname( backup_cwd ) ) - cmd = [ 'unzip', '-o', lib_archive_path ] - print( repr( cmd ) ) - subprocess.check_call( cmd ) + + archive_Zip = zipfile.ZipFile( lib_archive_path, 'r' ) + archive_Zip.extractall() + archive_Zip.close() + os.chdir( backup_cwd ) # copy all the dependent runtime data to the install directory @@ -328,18 +352,15 @@ class Config: 'gtkglext-1.2.0/bin/libgtkglext-win32-1.0-0.dll', 'libxml2-2.7.3/bin/libxml2-2.dll' ]: - cmd = [ 'cp', '-v', os.path.join( srcdir, dll ), 'install' ] - print( repr( cmd ) ) - subprocess.check_call( cmd ) + shutil.copy( os.path.join( srcdir, dll ), 'install' ) + for extra in [ 'gtk-2.16.6/etc', 'gtk-2.16.6/share', 'gtkglext-1.2.0/share', 'libxml2-2.7.3/share' ]: - cmd = [ 'cp', '-r', '-v', os.path.join( srcdir, extra ), 'install' ] - print( repr( cmd ) ) - subprocess.check_call( cmd ) + self.CopyTree( os.path.join( srcdir, extra ), 'install' ) # parse the config statement line to produce/update an existing config list # the configs expose a list of keywords and accepted values, which the engine parses out