Skip to content
Snippets Groups Projects
Commit 2234f620 authored by Seblu's avatar Seblu
Browse files

move repo filter inside repomanager

parent 67515a89
No related branches found
No related tags found
No related merge requests found
......@@ -9,7 +9,6 @@ InstallSystems Command line Tool
import os
import time
import fnmatch
import datetime
import argparse
import re
......@@ -30,21 +29,16 @@ 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)
repoman.register(repoconf)
return repoman
def select_image(name, repoman):
......
......@@ -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))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment