[jhbuild] info: add a --installed option
- From: Sebastian Geiger <segeiger src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [jhbuild] info: add a --installed option
- Date: Wed, 2 Dec 2015 12:00:42 +0000 (UTC)
commit c768710fc48718cbcaf45f0a308705ccef2e6136
Author: Sebastian Geiger <sbastig gmx net>
Date: Sun Nov 22 01:31:12 2015 +0100
info: add a --installed option
This option filters the output such that only installed
modules are printed.
jhbuild/commands/info.py | 30 ++++++++++++++++++++++++++++--
1 files changed, 28 insertions(+), 2 deletions(-)
---
diff --git a/jhbuild/commands/info.py b/jhbuild/commands/info.py
index f11d2b0..f52b922 100644
--- a/jhbuild/commands/info.py
+++ b/jhbuild/commands/info.py
@@ -20,6 +20,8 @@
import sys
import time
+from optparse import make_option
+
import jhbuild.moduleset
import jhbuild.frontends
from jhbuild.errors import FatalError
@@ -38,21 +40,45 @@ class cmd_info(Command):
name = 'info'
usage_args = N_('[ modules ... ]')
+ def __init__(self):
+ Command.__init__(self, [
+ make_option('--installed',
+ action='store_true', dest='installed', default=False,
+ help=_('only display information for installed modules. '
+ 'This will not list system dependencies. If one or more '
+ 'module names are specified and at least one module is '
+ 'not installed, then the command will return 1.'))
+ ])
def run(self, config, options, args, help=None):
module_set = jhbuild.moduleset.load(config)
packagedb = module_set.packagedb
if args:
+ # module names present
+ all_installed = True
for modname in args:
try:
module = module_set.get_module(modname, ignore_case = True)
except KeyError:
raise FatalError(_('unknown module %s') % modname)
- self.show_info(module, packagedb, module_set)
+ package_entry = packagedb.get(module.name)
+ installed = package_entry is not None
+ all_installed = all_installed and installed
+ if (options.installed and installed) or not options.installed:
+ self.show_info(module, packagedb, module_set)
+ if options.installed and not all_installed:
+ return 1
else:
+ # no module names given
for module in module_set.modules.values():
- self.show_info(module, packagedb, module_set)
+ package_entry = packagedb.get(module.name)
+ if options.installed:
+ if package_entry is not None:
+ self.show_info(module, packagedb, module_set)
+ else:
+ # no installed option selected, simply show all modules
+ self.show_info(module, packagedb, module_set)
def show_info(self, module, packagedb, module_set):
package_entry = packagedb.get(module.name)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]