[yum-cvs] yum/yum repos.py,1.70,1.71
Gijs Hollestelle
gijs at login.linux.duke.edu
Tue Mar 8 10:41:39 UTC 2005
Update of /home/groups/yum/cvs/yum/yum
In directory login:/tmp/cvs-serv23086
Modified Files:
repos.py
Log Message:
Enable wildcards to be used for enabling and disabling repositories.
Based on a patch by Konstantin Ryabitsev.
Index: repos.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/repos.py,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -r1.70 -r1.71
--- repos.py 7 Mar 2005 07:01:28 -0000 1.70
+++ repos.py 8 Mar 2005 10:41:36 -0000 1.71
@@ -20,6 +20,7 @@
import os.path
import types
import re
+import fnmatch
import urlparse
import Errors
@@ -32,6 +33,8 @@
from packages import YumAvailablePackage
import mdcache
+_is_fnmatch_pattern = re.compile(r"[*?[]").search
+
class YumPackageSack(packageSack.PackageSack):
"""imports/handles package objects from an mdcache dict object"""
def __init__(self, packageClass):
@@ -134,15 +137,41 @@
raise Errors.RepoError, \
'Error getting repository data for %s, repository not found' % (repoid)
+ def findRepos(self,pattern):
+ """find all repositories matching fnmatch `pattern`"""
+
+ result = []
+ match = re.compile(fnmatch.translate(pattern)).match
+
+ for name,repo in self.repos.items():
+ if match(name):
+ result.append(repo)
+ return result
+
def disableRepo(self, repoid):
- """disable a repository from use"""
- thisrepo = self.getRepo(repoid)
- thisrepo.disable()
-
+ """disable a repository from use
+
+ fnmatch wildcards may be used to disable a group of repositories.
+ """
+ if _is_fnmatch_pattern(repoid):
+ for repo in self.findRepos(repoid):
+ repo.disable()
+ else:
+ thisrepo = self.getRepo(repoid)
+ thisrepo.disable()
+
def enableRepo(self, repoid):
- """disable a repository from use"""
- thisrepo = self.getRepo(repoid)
- thisrepo.enable()
+ """enable a repository for use
+
+ fnmatch wildcards may be used to enable a group of repositories.
+ """
+ if _is_fnmatch_pattern(repoid):
+ repos = self.findRepos(repoid)
+ for repo in self.findRepos(repoid):
+ repo.enable()
+ else:
+ thisrepo = self.getRepo(repoid)
+ thisrepo.enable()
def listEnabled(self):
"""return list of enabled repo objects"""
More information about the Yum-cvs-commits
mailing list