X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=install.py;h=cf0a74ba0a2add810f6a55fa69243df76cb7d91c;hb=afe21be231c2d1e6775d576aefe50ddac780aa25;hp=ab7b5afa44a247d32081cafe21a4906aff1c5804;hpb=3138e5afec18501c819266055b16d24299434bd3;p=xonotic%2Fnetradiant.git diff --git a/install.py b/install.py index ab7b5afa..cf0a74ba 100644 --- a/install.py +++ b/install.py @@ -1,89 +1,48 @@ +#!/usr/bin/env python -import os -import shutil +import os.path, sys, shutil +def install_file( path, src_path, f ): + src = os.path.join( src_path, f ) + dst = os.path.join( path, f ) + print '%s -> %s' % ( src, dst ) + shutil.copyfile( src, dst ) -def copyFile(source, target): - assert os.path.isfile(source) - targetFile = target - if os.path.isdir(targetFile): - targetFile = os.path.join(target, os.path.basename(source)) - print source, "->", targetFile - shutil.copyfile(source, targetFile) - -def copyFileIfExists(source, target): - if os.path.exists(source): - copyFile(source, target) - -def copySvn(source, target): - assert os.path.isdir(source) - if not os.path.exists(target): - os.mkdir(target) - for name in os.listdir(source): - absolute = os.path.join(source, name) - absTarget = os.path.join(target, name) - if os.path.isdir(absolute): - if name != ".svn": - copySvn(absolute, absTarget) - else: - copyFile(absolute, absTarget) - -def copyGame(source, game, target): - assert os.path.isdir(source) - assert os.path.isdir(target) - root = os.path.join(source, os.path.normpath(game[0])) - if os.path.exists(root): - gamename = game[1] + ".game" - copySvn(os.path.join(root, gamename), os.path.join(target, gamename)) - gamesDir = os.path.join(target, "games") - if not os.path.exists(gamesDir): - os.mkdir(gamesDir) - copyFile(os.path.join(root, "games", gamename), os.path.join(gamesDir, gamename)) - -thisDir = os.path.dirname(__file__) -gamesRoot = os.path.join(thisDir, "games") -installRoot = os.path.join(thisDir, "install") +def install( path, src_path ): + for f in [ 'radiant.exe', 'radiant.pdb' ]: + install_file( path, src_path, f ) + + modules_path = os.path.join( path, 'modules' ) + try: + os.makedirs( modules_path ) + except: + pass + assert( os.path.exists( modules_path ) ) -if not os.path.exists(installRoot): - os.mkdir(installRoot) - -# copy generic data -copySvn(os.path.join(thisDir, os.path.normpath("setup/data/tools")), installRoot) + modules_src = os.path.join( src_path, 'modules' ) + assert( os.path.exists( modules_src ) ) -# root, gamename -games = [ - ("Doom3Pack/tools", "doom3"), - ("ETPack", "et"), - ("HalfLifePack", "hl"), - ("Her2Pack", "heretic2"), - ("JAPack/Tools", "ja"), - ("JK2Pack", "jk2"), - ("Q1Pack", "q1"), - ("Q2Pack", "q2"), - ("Q3Pack/tools", "q3"), - ("Q4Pack/tools", "q4"), - ("Sof2Pack", "sof2"), - ("STVEFPack", "stvef"), - ("WolfPack/bin", "wolf") -] + for e in os.listdir( modules_src ): + if ( e[-4:] == '.dll' or e[-4:] == '.pdb' ): + install_file( modules_path, modules_src, e ) + + plugins_path = os.path.join( path, 'plugins' ) + try: + os.makedirs( plugins_path ) + except: + pass + assert( os.path.exists( plugins_path ) ) + + plugins_src = os.path.join( src_path, 'plugins' ) + assert( os.path.exists( plugins_src ) ) -# copy games -for game in games: - copyGame(gamesRoot, game, installRoot) + for e in os.listdir( plugins_src ): + if ( e[-4:] == '.dll' or e[-4:] == '.pdb' ): + install_file( plugins_path, plugins_src, e ) -# copy win32 dlls -gtk2Root = os.path.normpath(os.path.join(thisDir, "../gtk2-2.4")) -if os.path.exists(gtk2Root): - copySvn(os.path.join(gtk2Root, "install"), installRoot) - -libxml2 = os.path.normpath(os.path.join(thisDir, "../libxml2-2.6/win32/install/libxml2.dll")) -copyFileIfExists(libxml2, installRoot) - -libpng = os.path.normpath(os.path.join(thisDir, "../libpng-1.2/lib/libpng13.dll")) -copyFileIfExists(libpng, installRoot) - -libmhash = os.path.normpath(os.path.join(thisDir, "../mhash-0.9/win32/libmhash/Release/libmhash.dll")) -copyFileIfExists(libmhash, installRoot) - -zlib = os.path.normpath(os.path.join(thisDir, "../zlib1-1.2/zlib1.dll")) -copyFileIfExists(zlib, installRoot) +if __name__ == '__main__': + if ( len( sys.argv ) <= 2 or not os.path.exists( sys.argv[1] ) or not os.path.exists( sys.argv[2] ) ): + print 'usage: install [target directory] [source directory]' + sys.exit(1) + print 'Install %s into %s' % ( sys.argv[2], sys.argv[1] ) + install( sys.argv[1], sys.argv[2] )