コード例 #1
0
ファイル: addons.py プロジェクト: chutz/pkgcheck
    def check_args(parser, namespace):
        arches = namespace.selected_arches
        target_repo = getattr(namespace, "target_repo", None)
        if target_repo is not None:
            all_arches = target_repo.known_arches
        else:
            all_arches = set()

        if arches is None:
            arches = (set(), all_arches)
        disabled, enabled = arches
        if not enabled:
            # enable all non-prefix arches
            enabled = set(arch for arch in all_arches if '-' not in arch)

        arches = set(enabled).difference(set(disabled))
        if all_arches:
            unknown_arches = arches.difference(all_arches)
            if unknown_arches:
                parser.error('unknown arch%s: %s (valid arches: %s)' % (
                    _pl(unknown_arches, plural='es'),
                    ', '.join(unknown_arches),
                    ', '.join(sorted(all_arches))))

        namespace.arches = tuple(sorted(arches))
コード例 #2
0
ファイル: metadata_checks.py プロジェクト: gyakovlev/pkgcheck
 def feed(self, pkg, reporter):
     if not self.iuse_handler.ignore:
         iuse = pkg.iuse_stripped.difference(
             self.iuse_handler.allowed_iuse(pkg))
         if iuse:
             reporter.add_report(
                 MetadataError(
                     pkg, "iuse", "iuse unknown flag%s: [ %s ]" %
                     (_pl(iuse), ", ".join(iuse))))
コード例 #3
0
def _setup_arches(namespace, attr):
    default_repo = namespace.config.get_default('repo')

    try:
        known_arches = {
            arch
            for r in namespace.repo.trees for arch in r.config.known_arches
        }
    except AttributeError:
        try:
            # binary/vdb repos use known arches from the default repo
            known_arches = default_repo.config.known_arches
        except AttributeError:
            # TODO: remove fallback for tests after fixing default repo pull
            # from faked config
            known_arches = set()

    arches = known_arches
    if namespace.arch is not None:
        disabled_arches, enabled_arches = namespace.arch
        disabled_arches = set(disabled_arches)
        enabled_arches = set(enabled_arches)
        unknown_arches = disabled_arches.difference(
            known_arches) | enabled_arches.difference(known_arches)
        if unknown_arches:
            unknown = ', '.join(map(repr, sorted(unknown_arches)))
            known = ', '.join(sorted(known_arches))
            plural = _pl(unknown_arches, plural='es')
            argparser.error(
                f'unknown arch{plural}: {unknown} (choices: {known})')
        if enabled_arches:
            arches = arches.intersection(enabled_arches)
        if disabled_arches:
            arches = arches - disabled_arches

    prefix_arches = set(x for x in arches if '-' in x)
    native_arches = arches.difference(prefix_arches)
    arches = native_arches
    if namespace.prefix:
        arches = arches.union(prefix_arches)
    if namespace.stable:
        try:
            stable_arches = {
                arch
                for r in namespace.repo.trees
                for arch in r.config.profiles.arches('stable')
            }
        except AttributeError:
            # binary/vdb repos use stable arches from the default repo
            stable_arches = default_repo.config.profiles.arches('stable')
        arches = arches.intersection(stable_arches)

    namespace.known_arches = known_arches
    namespace.prefix_arches = prefix_arches
    namespace.native_arches = native_arches
    namespace.arches = arches
コード例 #4
0
ファイル: deprecated.py プロジェクト: gyakovlev/pkgcheck
    def short_desc(self):
        eclass_migration = []
        for old_eclass, new_eclass in self.eclasses:
            if new_eclass:
                update_path = f'migrate to {new_eclass}'
            else:
                update_path = 'no replacement'
            eclass_migration.append(f'{old_eclass} ({update_path})')

        return "uses deprecated eclass%s: [ %s ]" % (_pl(
            eclass_migration, plural='es'), ', '.join(eclass_migration))
コード例 #5
0
ファイル: pshowkw.py プロジェクト: radhermit/pkgcore
def _setup_arches(namespace, attr):
    default_repo = namespace.config.get_default('repo')

    try:
        known_arches = {arch for r in namespace.repo.trees
                        for arch in r.config.known_arches}
    except AttributeError:
        try:
            # binary/vdb repos use known arches from the default repo
            known_arches = default_repo.config.known_arches
        except AttributeError:
            # TODO: remove fallback for tests after fixing default repo pull
            # from faked config
            known_arches = set()

    arches = known_arches
    if namespace.arch is not None:
        disabled_arches, enabled_arches = namespace.arch
        disabled_arches = set(disabled_arches)
        enabled_arches = set(enabled_arches)
        unknown_arches = disabled_arches.difference(known_arches) | enabled_arches.difference(known_arches)
        if unknown_arches:
            unknown = ', '.join(map(repr, sorted(unknown_arches)))
            known = ', '.join(sorted(known_arches))
            plural = _pl(unknown_arches, plural='es')
            argparser.error(f'unknown arch{plural}: {unknown} (choices: {known})')
        if enabled_arches:
            arches = arches.intersection(enabled_arches)
        if disabled_arches:
            arches = arches - disabled_arches

    prefix_arches = set(x for x in arches if '-' in x)
    native_arches = arches.difference(prefix_arches)
    arches = native_arches
    if namespace.prefix:
        arches = arches.union(prefix_arches)
    if namespace.stable:
        try:
            stable_arches = {arch for r in namespace.repo.trees
                             for arch in r.config.profiles.arches('stable')}
        except AttributeError:
            # binary/vdb repos use stable arches from the default repo
            stable_arches = default_repo.config.profiles.arches('stable')
        arches = arches.intersection(stable_arches)

    namespace.known_arches = known_arches
    namespace.prefix_arches = prefix_arches
    namespace.native_arches = native_arches
    namespace.arches = arches
コード例 #6
0
ファイル: metadata_xml.py プロジェクト: gyakovlev/pkgcheck
 def long_desc(self):
     return "%s on line%s %s" % (self.short_desc, _pl(
         self.lines), ', '.join(str(x) for x in self.lines))
コード例 #7
0
ファイル: pkgdir.py プロジェクト: chutz/pkgcheck
 def desc(self):
     return "mismatched package name%s: [ %s ]" % (
         _pl(self.ebuilds), ', '.join(self.ebuilds))
コード例 #8
0
 def short_desc(self):
     return "unused eclass%s in master repo(s): %s" % (_pl(
         self.eclasses, 'es'), ', '.join(self.eclasses))
コード例 #9
0
 def desc(self):
     return "%r: unknown USE flag%s: [ %s ]" % (self.path, _pl(
         self.flags), ', '.join(map(repr, self.flags)))
コード例 #10
0
ファイル: git.py プロジェクト: chutz/pkgcheck
 def desc(self):
     return f'directly committed with stable keyword%s: [ %s ]' % (_pl(
         self.keywords), ', '.join(self.keywords))
コード例 #11
0
 def short_desc(self):
     return (
         f"slot({self.slot}) no change in {self.period} days for unstable "
         "keyword%s: [ %s ]" %
         (_pl(self.keywords), ', '.join(self.keywords)))
コード例 #12
0
 def desc(self):
     categories = ', '.join(self.categories)
     y = _pl(self.categories, singular='y', plural='ies')
     return f'unknown categor{y}: {categories}'
コード例 #13
0
 def desc(self):
     return "unused license%s in master repo(s): %s" % (_pl(
         self.licenses), ', '.join(self.licenses))
コード例 #14
0
ファイル: cleanup.py プロジェクト: chutz/pkgcheck
 def desc(self):
     return "slot(%s) keywords are overshadowed by version%s: %s" % (
         self.slot, _pl(self.later_versions), ', '.join(
             self.later_versions))
コード例 #15
0
 def desc(self):
     return "use.desc unused flag%s in master repo(s): %s" % (_pl(
         self.flags), ', '.join(self.flags))
コード例 #16
0
 def desc(self):
     return "unused eclass%s in master repo(s): %s" % (_pl(
         self.eclasses, plural='es'), ', '.join(self.eclasses))
コード例 #17
0
 def desc(self):
     return "unused mirror%s in master repo(s): %s" % (_pl(
         self.mirrors), ', '.join(self.mirrors))
コード例 #18
0
 def desc(self):
     return "metadata.xml unused local USE flag%s: [ %s ]" % (
         _pl(self.flags), ', '.join(self.flags))
コード例 #19
0
 def desc(self):
     return "license group %r has unknown license%s: [ %s ]" % (
         self.group, _pl(self.licenses), ', '.join(self.licenses))
コード例 #20
0
ファイル: codingstyle.py プロジェクト: gyakovlev/pkgcheck
 def short_desc(self):
     return "'%s' link should use https:// on line%s: %s" % (
         self.link, _pl(self.lines), ', '.join(map(str, self.lines)))
コード例 #21
0
 def desc(self):
     return "use.desc unused flag%s: %s" % (_pl(self.flags), ', '.join(
         self.flags))
コード例 #22
0
 def desc(self):
     return "%r: unknown package%s: [ %s ]" % (self.path, _pl(
         self.packages), ', '.join(map(repr, self.packages)))
コード例 #23
0
 def desc(self):
     return "distfile%s missing from Manifest: [ %s ]" % (
         _pl(self.files),
         ', '.join(self.files),
     )
コード例 #24
0
 def desc(self):
     return "%r: unknown package USE flag%s: [ '%s[%s]' ]" % (
         self.path, _pl(self.flags), self.package, ','.join(self.flags))
コード例 #25
0
 def desc(self):
     return "unknown distfile%s in Manifest: [ %s ]" % (
         _pl(self.files),
         ', '.join(self.files),
     )
コード例 #26
0
 def desc(self):
     return "%r: unknown package keyword%s: %s: [ %s ]" % (
         self.path, _pl(self.keywords), self.package, ', '.join(
             map(repr, self.keywords)))
コード例 #27
0
 def desc(self):
     return "unnecessary file%s in Manifest: [ %s ]" % (
         _pl(self.files),
         ', '.join(self.files),
     )
コード例 #28
0
ファイル: pkgdir.py プロジェクト: chutz/pkgcheck
 def desc(self):
     files = ', '.join(map(repr, self.filenames))
     y = _pl(self.filenames, singular='y', plural='ies')
     return f'unknown entr{y}: {files}'
コード例 #29
0
 def desc(self):
     return "for arch%s: [ %s ], all versions are unstable: [ %s ]" % (
         _pl(self.arches, plural='es'), ', '.join(self.arches), ', '.join(self.versions))
コード例 #30
0
ファイル: pkgdir.py プロジェクト: chutz/pkgcheck
 def desc(self):
     return "invalid package name%s: [ %s ]" % (
         _pl(self.ebuilds), ', '.join(self.ebuilds))
コード例 #31
0
 def short_desc(self):
     return "stabled arch%s: [ %s ], potential%s: [ %s ]" % (
         _pl(self.stable, plural='es'), ', '.join(self.stable),
         _pl(self.keywords), ', '.join(self.keywords))