Ejemplo n.º 1
0
def execute(script, data_dir, rev):
    pagenames = script.request.rootpage.getPageList(user='', include_underlay=False)

    for pagename in pagenames:
        attachdir = getAttachDir(script.request, pagename)
        try:
            drawings = [fn for fn in os.listdir(attachdir) if fn.endswith('.draw')]
        except OSError:
            # silenced. attachment directory does not exist. proceed with next page
            continue
        for drawing in drawings:
            basename = os.path.splitext(drawing)[0]
            tar_filename = os.path.join(attachdir, basename + '.tdraw')
            tar = tarfile.open(tar_filename, 'w:')
            for ext in ['.draw', '.map', '.png', '.gif', ]:
                filename = os.path.join(attachdir, basename + ext)
                try:
                    if ext != '.gif':
                        # get rid of the gif (TWikiDraw will (re)create
                        # a .png when someone edits the drawing)
                        # we use drawing.* as tar member filenames EVER, so the
                        # member filenames do not need to be changed when the
                        # tar container file gets renamed:
                        tar.add(filename, 'drawing' + ext)
                    os.remove(filename)
                except OSError, err:
                    if err.errno != errno.ENOENT:
                        # .map and .png are optional, .draw should be there
                        raise
            tar.close()
Ejemplo n.º 2
0
def sendBackup(request):
    """ Send compressed tar file """
    dateStamp = time.strftime("%Y-%m-%d--%H-%M-%S-UTC", time.gmtime())
    filename = "%s-%s.tar.%s" % (request.cfg.siteid, dateStamp, request.cfg.backup_compression)
    request.headers['Content-Type'] = 'application/octet-stream'
    request.headers['Content-Disposition'] = 'inline; filename="%s"' % filename
    tar = tarfile.open(fileobj=request, mode="w|%s" % request.cfg.backup_compression)
    # allow GNU tar's longer file/pathnames
    tar.posix = False
    for path in request.cfg.backup_include:
        addFiles(path, tar, request.cfg.backup_exclude)
    tar.close()
Ejemplo n.º 3
0
def sendBackup(request):
    """ Send compressed tar file """
    dateStamp = time.strftime("%Y-%m-%d--%H-%M-%S-UTC", time.gmtime())
    filename = "%s-%s.tar.%s" % (request.cfg.siteid, dateStamp,
                                 request.cfg.backup_compression)
    request.headers['Content-Type'] = 'application/octet-stream'
    request.headers['Content-Disposition'] = 'inline; filename="%s"' % filename
    tar = tarfile.open(fileobj=request,
                       mode="w|%s" % request.cfg.backup_compression)
    # allow GNU tar's longer file/pathnames
    tar.posix = False
    for path in request.cfg.backup_include:
        addFiles(path, tar, request.cfg.backup_exclude)
    tar.close()
Ejemplo n.º 4
0
def execute(script, data_dir, rev):
    pagenames = script.request.rootpage.getPageList(user='',
                                                    include_underlay=False)

    for pagename in pagenames:
        attachdir = getAttachDir(script.request, pagename)
        try:
            drawings = [
                fn for fn in os.listdir(attachdir) if fn.endswith('.draw')
            ]
        except OSError:
            # silenced. attachment directory does not exist. proceed with next page
            continue
        for drawing in drawings:
            basename = os.path.splitext(drawing)[0]
            tar_filename = os.path.join(attachdir, basename + '.tdraw')
            tar = tarfile.open(tar_filename, 'w:')
            for ext in [
                    '.draw',
                    '.map',
                    '.png',
                    '.gif',
            ]:
                filename = os.path.join(attachdir, basename + ext)
                try:
                    if ext != '.gif':
                        # get rid of the gif (TWikiDraw will (re)create
                        # a .png when someone edits the drawing)
                        # we use drawing.* as tar member filenames EVER, so the
                        # member filenames do not need to be changed when the
                        # tar container file gets renamed:
                        tar.add(filename, 'drawing' + ext)
                    os.remove(filename)
                except OSError, err:
                    if err.errno != errno.ENOENT:
                        # .map and .png are optional, .draw should be there
                        raise
            tar.close()
Ejemplo n.º 5
0
def untarUnderlay():
    print 'untaring underlay ...'
    tar = tarfile.open(os.path.join(SHARE, 'underlay.tar'))
    for member in tar:
        tar.extract(member, WIKI)
    tar.close()
Ejemplo n.º 6
0
def untarUnderlay():
    print "untaring underlay ..."
    tar = tarfile.open(os.path.join(SHARE, "underlay.tar"))
    for member in tar:
        tar.extract(member, WIKI)
    tar.close()