# Revision history: # 12 Apr 01 use os.path, shutil # Initial version: R.W. Grosse-Kunstleve bpl_src = "/libs/python/src" bpl_tst = "/libs/python/test" bpl_exa = "/libs/python/example" files = ( bpl_src + "/classes.cpp", bpl_src + "/conversions.cpp", bpl_src + "/extension_class.cpp", bpl_src + "/functions.cpp", bpl_src + "/init_function.cpp", bpl_src + "/module_builder.cpp", bpl_src + "/objects.cpp", bpl_src + "/types.cpp", bpl_src + "/cross_module.cpp", bpl_tst + "/comprehensive.cpp", bpl_tst + "/comprehensive.hpp", bpl_tst + "/comprehensive.py", bpl_tst + "/doctest.py", bpl_exa + "/abstract.cpp", bpl_exa + "/getting_started1.cpp", bpl_exa + "/getting_started2.cpp", bpl_exa + "/simple_vector.cpp", bpl_exa + "/do_it_yourself_converters.cpp", bpl_exa + "/pickle1.cpp", bpl_exa + "/pickle2.cpp", bpl_exa + "/pickle3.cpp", bpl_exa + "/test_abstract.py", bpl_exa + "/test_getting_started1.py", bpl_exa + "/test_getting_started2.py", bpl_exa + "/test_simple_vector.py", bpl_exa + "/test_do_it_yourself_converters.py", bpl_exa + "/test_pickle1.py", bpl_exa + "/test_pickle2.py", bpl_exa + "/test_pickle3.py", bpl_exa + "/noncopyable.h", bpl_exa + "/noncopyable_export.cpp", bpl_exa + "/noncopyable_import.cpp", bpl_exa + "/dvect.h", bpl_exa + "/dvect.cpp", bpl_exa + "/dvect_conversions.cpp", bpl_exa + "/dvect_defs.cpp", bpl_exa + "/ivect.h", bpl_exa + "/ivect.cpp", bpl_exa + "/ivect_conversions.cpp", bpl_exa + "/ivect_defs.cpp", bpl_exa + "/tst_noncopyable.py", bpl_exa + "/tst_dvect1.py", bpl_exa + "/tst_dvect2.py", bpl_exa + "/tst_ivect1.py", bpl_exa + "/tst_ivect2.py", bpl_exa + "/test_cross_module.py", ) defs = ( "boost_python_test", "abstract", "getting_started1", "getting_started2", "simple_vector", "do_it_yourself_converters", "pickle1", "pickle2", "pickle3", "noncopyable_export", "noncopyable_import", "ivect", "dvect", ) if (__name__ == "__main__"): import sys, os, shutil path = sys.argv[1] mode = sys.argv[2] if (not mode in ("softlinks", "unlink", "cp", "rm", "copy", "del")): raise RuntimeError, \ "usage: python filemgr.py path " if (mode in ("cp", "copy")): for fn in files: f = os.path.basename(fn) print "Copying: " + f shutil.copy(path + fn, ".") elif (mode == "softlinks"): for fn in files: f = os.path.basename(fn) if (os.path.exists(f)): print "File exists: " + f else: print "Linking: " + f os.symlink(path + fn, f) elif (mode in ("rm", "del")): for fn in files: f = os.path.basename(fn) if (os.path.exists(f)): print "Removing: " + f try: os.unlink(f) except: pass elif (mode == "unlink"): for fn in files: f = os.path.basename(fn) if (os.path.exists(f)): if (os.path.islink(f)): print "Unlinking: " + f try: os.unlink(f) except: pass else: print "Not a softlink: " + f if (mode in ("softlinks", "cp", "copy")): for d in defs: fn = d + ".def" print "Creating: " + fn f = open(fn, "w") f.write("EXPORTS\n") f.write("\tinit" + d + "\n") f.close() if (mode in ("unlink", "rm", "del")): for d in defs: fn = d + ".def" if (os.path.exists(fn)): print "Removing: " + fn try: os.unlink(fn) except: pass