Commit 2234f620 authored by Seblu's avatar Seblu
Browse files

move repo filter inside repomanager

parent 67515a89
Loading
Loading
Loading
Loading
+4 −10
Original line number Diff line number Diff line
@@ -9,7 +9,6 @@ InstallSystems Command line Tool

import os
import time
import fnmatch
import datetime
import argparse
import re
@@ -30,20 +29,15 @@ def load_repositories(args):
    if args.no_cache:
        args.cache = None
    # init repo cache object
    repoman = RepositoryManager(args.cache, timeout=args.timeout)
    repoman = RepositoryManager(args.cache, timeout=args.timeout, filter=args.repo_filter)
    # register repositories (order matter)
    # load repo configs
    # load repo configs from command line
    if args.repo_path is not None:
        # from command line
        repoman.register(RepositoryConfig(istools.smd5sum(args.repo_path)[:8],
                                          path=args.repo_path))

    # from config
    # load repo configs from config
    for repoconf in RepoConfigFile(args.repo_config).repos:
        if args.repo_filter is None:
            repoman.register(repoconf)
        else:
            if len(fnmatch.filter([repoconf.name], args.repo_filter)) > 0:
        repoman.register(repoconf)
    return repoman

+7 −1
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ import shutil
import pwd
import grp
import tempfile
import fnmatch
import installsystems
import installsystems.tools as istools
from installsystems.printer import *
@@ -470,10 +471,11 @@ class RepositoryManager(object):
    This call implement a cache and a manager for multiple repositories
    '''

    def __init__(self, cache_path=None, timeout=None):
    def __init__(self, cache_path=None, timeout=None, filter=None):
        self.timeout = 3 if timeout is None else timeout
        self.repos = []
        self.tempfiles = []
        self.filter = filter
        if cache_path is None:
            self.cache_path = None
            debug("No repository cache")
@@ -533,6 +535,10 @@ class RepositoryManager(object):
        '''
        Register a repository from its config
        '''
        # check filter on name
        if self.filter is not None:
            if not fnmatch.fnmatch(config.name, self.filter):
                return
        # if path is local, no needs to create a cache
        if istools.isfile(config.path):
            debug("Registering direct repository %s (%s)" % (config.path, config.name))