Files @ 158ef33603b8
Branch filter:

Location: kallithea/rhodecode/lib/vcs/utils/archivers.py

Bradley M. Kuhn
Add mousetrap.js file from Mousetrap 1.4.5, under the Apache license.

The file was download and verified via these commands:
$ git clone https://github.com/ccampbell/mousetrap.git
$ cd mousetrap; git checkout 1.4.5

The file in that repository named mousetrap.js is exactly the same one that
appeared in RhodeCode 2.2.5 in changeset c8d3c0d61d95.

The mousetrap.js states clearly that it is licensed under Apache-2.0.
# -*- coding: utf-8 -*-
"""
    vcs.utils.archivers
    ~~~~~~~~~~~~~~~~~~~

    set of archiver functions for creating archives from repository content

    :created_on: Jan 21, 2011
    :copyright: (c) 2010-2011 by Marcin Kuzminski, Lukasz Balcerzak.
"""


class BaseArchiver(object):

    def __init__(self):
        self.archive_file = self._get_archive_file()

    def addfile(self):
        """
        Adds a file to archive container
        """
        pass

    def close(self):
        """
        Closes and finalizes operation of archive container object
        """
        self.archive_file.close()

    def _get_archive_file(self):
        """
        Returns container for specific archive
        """
        raise NotImplementedError()


class TarArchiver(BaseArchiver):
    pass


class Tbz2Archiver(BaseArchiver):
    pass


class TgzArchiver(BaseArchiver):
    pass


class ZipArchiver(BaseArchiver):
    pass


def get_archiver(self, kind):
    """
    Returns instance of archiver class specific to given kind

    :param kind: archive kind
    """

    archivers = {
        'tar': TarArchiver,
        'tbz2': Tbz2Archiver,
        'tgz': TgzArchiver,
        'zip': ZipArchiver,
    }

    return archivers[kind]()