Пример #1
0
    def get_rdepend(self):
        """Get the contents of RDEPEND and parse it with self.parser."""

        try:
            return self.parser(self.environment(('RDEPEND', ))[0])
        except portage.exception.InvalidPackageName as err:
            raise errors.GentoolkitInvalidCPV(err)
Пример #2
0
    def get_all_depends(self):
        """Get the contents of ?DEPEND and parse it with self.parser."""

        env_vars = ('DEPEND', 'PDEPEND', 'RDEPEND')
        try:
            return self.parser(' '.join(self.environment(env_vars)))
        except portage.exception.InvalidPackageName as err:
            raise errors.GentoolkitInvalidCPV(err)
Пример #3
0
 def _get_depend(self, env_vars, raw=False):
     raw_depend = " ".join(self.environment(env_vars))
     if raw:
         return raw_depend
     try:
         return self.parser(raw_depend)
     except portage.exception.InvalidPackageName as err:
         raise errors.GentoolkitInvalidCPV(err)
Пример #4
0
    def __init__(self, cpv, validate=False):
        self.cpv = cpv
        self._category = None
        self._name = None
        self._version = None
        self._revision = None
        self._cp = None
        self._fullversion = None

        self.validate = validate
        if validate and not self.name:
            raise errors.GentoolkitInvalidCPV(cpv)
Пример #5
0
def split_cpv(cpv, validate=True):
    """Split a cpv into category, name, version and revision.

    Modified from pkgcore.ebuild.cpv

    @type cpv: str
    @param cpv: pkg, cat/pkg, pkg-ver, cat/pkg-ver
    @rtype: tuple
    @return: (category, pkg_name, version, revision)
            Each tuple element is a string or empty string ("").
    """

    category = name = version = revision = ""

    try:
        category, pkgver = cpv.rsplit("/", 1)
    except ValueError:
        pkgver = cpv
    if validate and category and not isvalid_cat_re.match(category):
        raise errors.GentoolkitInvalidCPV(cpv)
    pkg_chunks = pkgver.split("-")
    lpkg_chunks = len(pkg_chunks)
    if lpkg_chunks == 1:
        return (category, pkg_chunks[0], version, revision)
    if isvalid_rev(pkg_chunks[-1]):
        if lpkg_chunks < 3:
            # needs at least ('pkg', 'ver', 'rev')
            raise errors.GentoolkitInvalidCPV(cpv)
        rev = pkg_chunks.pop(-1)
        if rev:
            revision = rev

    if isvalid_version_re.match(pkg_chunks[-1]):
        version = pkg_chunks.pop(-1)

    if not isvalid_pkg_name(pkg_chunks):
        raise errors.GentoolkitInvalidCPV(cpv)
    name = "-".join(pkg_chunks)

    return (category, name, version, revision)