]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - install.py
q3map2: fix dangling pointer dereference
[xonotic/netradiant.git] / install.py
index ab7b5afa44a247d32081cafe21a4906aff1c5804..cf0a74ba0a2add810f6a55fa69243df76cb7d91c 100644 (file)
@@ -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] )