From 33486679feeeef907d6ba52b9a9e34c34784f77f Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Tue, 22 Aug 2006 13:42:39 +0000 Subject: [PATCH] * version/release dependencies.. --- pisi/scenarioapi/pspec.py | 10 ++++++++++ pisi/scenarioapi/repoops.py | 1 + pisi/scenarioapi/withops.py | 17 +++++++++++++++++ 3 files changed, 28 insertions(+) diff --git a/pisi/scenarioapi/pspec.py b/pisi/scenarioapi/pspec.py index 505aabbc..9329e661 100644 --- a/pisi/scenarioapi/pspec.py +++ b/pisi/scenarioapi/pspec.py @@ -50,6 +50,16 @@ class Pspec: return tmp def add_dependencies(self, dependencies): + # special case of given one dependency package + # with depedency versioning info [**kw, name] + # [{"versionFrom":"0.4.2"}, "udev"] + if type(dependencies[0]) == dict: + dep = Dependency() + (kw, dep.package) = dependencies + dep.__dict__[kw.keys()[0]] = kw.values()[0] + self.package.packageDependencies.append(dep) + return + for depname in dependencies: dep = Dependency() dep.package = depname diff --git a/pisi/scenarioapi/repoops.py b/pisi/scenarioapi/repoops.py index b9ba4529..bc8ca701 100644 --- a/pisi/scenarioapi/repoops.py +++ b/pisi/scenarioapi/repoops.py @@ -28,6 +28,7 @@ def repo_added_package(package, *args): if repodb.has_key(package): raise Exception(_("Repo already has package named %s.") % package) + version = "1.0" dependencies = None conflicts = None diff --git a/pisi/scenarioapi/withops.py b/pisi/scenarioapi/withops.py index da8c8103..1b4b4156 100644 --- a/pisi/scenarioapi/withops.py +++ b/pisi/scenarioapi/withops.py @@ -46,3 +46,20 @@ def with_added_dependencies(*deps): def with_removed_dependencies(*deps): return with_action(DEPENDENCY, REMOVED, deps) + +def with_added_dependency(package, **kw): + assert len(kw) <= 1 + + if not len(kw): + return with_action(DEPENDENCY, ADDED, [package]) + + if (kw.has_key("versionFrom") or + kw.has_key("versionTo") or + kw.has_key("version") or + kw.has_key("releaseFrom") or + kw.has_key("releaseTo") or + kw.has_key("release")): + return with_action(DEPENDENCY, ADDED, [kw, package]) + + # pass other keywords. + return with_action(DEPENDENCY, ADDED, [package])