Back to index

moin  1.9.0~rc2
maketestwiki.py
Go to the documentation of this file.
00001 # -*- coding: iso-8859-1 -*-
00002 """
00003 MoinMoin - make a test wiki
00004 
00005 Usage:
00006 
00007     maketestwiki.py
00008 
00009 @copyright: 2005 by Thomas Waldmann
00010 @license: GNU GPL, see COPYING for details.
00011 """
00012 
00013 import os, sys, shutil, errno
00014 
00015 filename = globals().get("__file__") or sys.argv[0]
00016 moinpath = os.path.abspath(os.path.join(os.path.dirname(filename), os.pardir, os.pardir))
00017 
00018 from MoinMoin.support import tarfile
00019 
00020 WIKI = os.path.abspath(os.path.join(moinpath, 'tests', 'wiki'))
00021 SHARE = os.path.abspath(os.path.join(moinpath, 'wiki'))
00022 
00023 
00024 def removeTestWiki():
00025     print 'removing old wiki ...'
00026     for dir in ['data', 'underlay']:
00027         try:
00028             shutil.rmtree(os.path.join(WIKI, dir))
00029         except OSError, err:
00030             if not (err.errno == errno.ENOENT or
00031                     (err.errno == 3 and os.name == 'nt')):
00032                 raise
00033 
00034 
00035 def copyData():
00036     print 'copying data ...'
00037     src = os.path.join(SHARE, 'data')
00038     dst = os.path.join(WIKI, 'data')
00039     shutil.copytree(src, dst)
00040 
00041 
00042 def untarUnderlay():
00043     print 'untaring underlay ...'
00044     tar = tarfile.open(os.path.join(SHARE, 'underlay.tar'))
00045     for member in tar:
00046         tar.extract(member, WIKI)
00047     tar.close()
00048 
00049 
00050 def run(skip_if_existing=False):
00051     try:
00052         os.makedirs(WIKI)
00053     except OSError, e:
00054         if e.errno != errno.EEXIST:
00055             raise
00056 
00057     if skip_if_existing and os.path.exists(os.path.join(WIKI, 'data')):
00058         return
00059     removeTestWiki()
00060     copyData()
00061     untarUnderlay()
00062 
00063 if __name__ == '__main__':
00064     sys.path.insert(0, moinpath)
00065     run()
00066