diff options
author | Alistair Bush <ali_bush@gentoo.org> | 2008-01-13 05:50:44 +0000 |
---|---|---|
committer | Alistair Bush <ali_bush@gentoo.org> | 2008-01-13 05:50:44 +0000 |
commit | e0d516e129ebb082634ffb2da7a83395cd73d063 (patch) | |
tree | d8210a1eabb151f2ce2ddb1de2400f6868ffb019 /src/java_config_2 | |
parent | Fxi syntax error. (diff) | |
download | java-config-e0d516e129ebb082634ffb2da7a83395cd73d063.tar.gz java-config-e0d516e129ebb082634ffb2da7a83395cd73d063.tar.bz2 java-config-e0d516e129ebb082634ffb2da7a83395cd73d063.zip |
Added further fixes, now virtuals can handle slot depends etc.
svn path=/projects/java-config-2/trunk/; revision=5915
Diffstat (limited to 'src/java_config_2')
-rw-r--r-- | src/java_config_2/Errors.py | 7 | ||||
-rw-r--r-- | src/java_config_2/VersionManager.py | 18 | ||||
-rw-r--r-- | src/java_config_2/Virtual.py | 4 |
3 files changed, 19 insertions, 10 deletions
diff --git a/src/java_config_2/Errors.py b/src/java_config_2/Errors.py index d4a870c..564e874 100644 --- a/src/java_config_2/Errors.py +++ b/src/java_config_2/Errors.py @@ -40,6 +40,10 @@ class ProviderUnavailableError(Exception): def vms(self): return self._vms + def __str__(self): + return """No provider is available for """ + self._virtual + """ + Please check your environment.""" + class MissingOptionalsError(Exception): """ Some optional utilities are missing from a valid VM @@ -57,4 +61,7 @@ class UnexistingPackageError(Exception): def __init__(self, package): self.package = package + def __str__(self): + return "Package %s was not found!" % self.package + # vim:set expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap: diff --git a/src/java_config_2/VersionManager.py b/src/java_config_2/VersionManager.py index a1527aa..e795b28 100644 --- a/src/java_config_2/VersionManager.py +++ b/src/java_config_2/VersionManager.py @@ -26,7 +26,8 @@ class VersionManager: """ atom_parser = re.compile(r"([<>=]+)virtual/(jre|jdk)-([0-9\.*]+)") #virtuals_parser = re.compile(r"([<>=]+)?java-virtuals/(.*?)") - virtuals_parser = re.compile(r"([<>=~]+)?java-virtuals/(.+)[\-:]([0-9\.*]+)") + #virtuals_parser = re.compile(r"([<>=~]+)?java-virtuals/(.+)[\-:]([0-9\.*]+)") + virtuals_parser = re.compile(r"([<>=~]+)?java-virtuals/([\w\-\.:]+)") pref_files = ['/etc/java-config-2/build/jdk.conf', '/usr/share/java-config-2/config/jdk-defaults.conf'] _prefs = None @@ -45,8 +46,10 @@ class VersionManager: def parse_depend(self, atoms): """Filter the dependency string for useful information""" - + + matched_atoms = [] atoms = self.filter_depend(atoms) + #print atoms matches = self.atom_parser.findall(atoms) virtuals_matches = self.virtuals_parser.findall(atoms) @@ -61,7 +64,6 @@ class VersionManager: def filter_depend( self, atoms ): """Filter the dependency string for useful information""" - new_atoms="" import os # gjl does not use use flags @@ -76,19 +78,19 @@ class VersionManager: atoms = " ".join(atoms.split()) # Remove conditional depends that are not turned on - new_atoms = " ".join(flatten(use_reduce(paren_reduce(atoms),uselist=use))) + atoms = " ".join(flatten(use_reduce(paren_reduce(atoms),uselist=use))) except KeyError: pass - return new_atoms + return atoms def parse_depend_virtuals(self, atoms): """Filter the dependency string for useful information""" - atoms=self.filter_atoms(atoms) + atoms=self.filter_depend(atoms) virtuals_matches = self.virtuals_parser.findall(atoms) matched_virtuals = "" for match in virtuals_matches: - matched_virtuals += " " + match[1] + "-" + match[2] + matched_virtuals += " " + match[1].replace(':', '-') return matched_virtuals @@ -140,7 +142,7 @@ class VersionManager: def get_vm(self, atoms, need_virtual = None): matched_atoms = self.parse_depend(atoms) matched_virtuals = self.parse_depend_virtuals(atoms) - print "matched_virtuals=" + matched_virtuals + #print "matched_virtuals=" + matched_virtuals if len(matched_atoms) == 0: return None if len(matched_virtuals) == 0: diff --git a/src/java_config_2/Virtual.py b/src/java_config_2/Virtual.py index 47dacb6..050f9bf 100644 --- a/src/java_config_2/Virtual.py +++ b/src/java_config_2/Virtual.py @@ -77,8 +77,8 @@ class Virtual(Package): for vm in vms: if self._manager.get_vm(vm): self._vms.append(vm) - #if not self._packages and not self._vms: - raise ProviderUnavailableError( self._name, self.providing_vms, self.providing_packages ) + if not self._packages and not self._vms: + raise ProviderUnavailableError( self._name, self.providing_vms, self.providing_packages ) def file(self): # Investigate if anything uses this |