From bd5f34ed8e93e07c650ba4a0630b6ebffa3176aa Mon Sep 17 00:00:00 2001 From: Faik Uygur Date: Mon, 6 Nov 2006 12:40:36 +0000 Subject: [PATCH] =?UTF-8?q?*=20install=20-c=20[--component]=20and=20remove?= =?UTF-8?q?=20-c=20[--component]=C2=A0is=20added.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pisi install -c desktop.kde -c desktop.gnome amsn amsn-kde ... --- pisi/cli/commands.py | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/pisi/cli/commands.py b/pisi/cli/commands.py index 003bc7e1..d1c6e209 100644 --- a/pisi/cli/commands.py +++ b/pisi/cli/commands.py @@ -594,17 +594,28 @@ expanded to package names. default=False, help=_("Ignore file conflicts")) group.add_option("--ignore-package-conflicts", action="store_true", default=False, help=_("Ignore package conflicts")) + group.add_option("-c", "--component", action="append", + default=None, help=_("Install component's and recursive component's packages")) group.add_option("-f", "--fetch-only", action="store_true", default=False, help=_("Fetch upgrades but do not install.")) self.parser.add_option_group(group) def run(self): - if not self.args: + self.init() + + components = ctx.get_option('component') + if not components and not self.args: self.help() return - self.init() - pisi.api.install(self.args, ctx.get_option('reinstall')) + packages = [] + if components: + for name in components: + if ctx.componentdb.has_component(name): + packages.extend(ctx.componentdb.get_union_packages(name, walk=True)) + packages.extend(self.args) + + pisi.api.install(packages, ctx.get_option('reinstall')) self.finalize() @@ -737,17 +748,27 @@ expanded to package names. def options(self): group = OptionGroup(self.parser, _("remove options")) super(Remove, self).options(group) + group.add_option("-c", "--component", action="append", + default=None, help=_("Remove component's and recursive component's packages")) self.parser.add_option_group(group) def run(self): - if not self.args: + self.init() + + components = ctx.get_option('component') + if not components and not self.args: self.help() return - self.init() - pisi.api.remove(self.args) - self.finalize() + packages = [] + if components: + for name in components: + if ctx.componentdb.has_component(name): + packages.extend(ctx.componentdb.get_union_packages(name, walk=True)) + packages.extend(self.args) + pisi.api.remove(packages) + self.finalize() class ConfigurePending(PackageOp): """Configure pending packages