diff --git a/bin/is b/bin/is index 207c050f9bf6aaa5dc9fc7a52b1cd4edbf83977a..22a6ada38859b5cfa68e8e6061b61f1a4f543587 100755 --- a/bin/is +++ b/bin/is @@ -289,10 +289,14 @@ def c_info(args): ''' Display info about packaged images ''' + if args.all: + args.payloads = True + args.files = True + args.changelog = True repoman = load_repositories(args) for image, repo in get_images(args.pattern, repoman, min=1): - image.show(o_verbose=args.verbose, o_changelog=args.changelog, - o_json=args.json) + image.show(o_files=args.files, o_payloads=args.payloads, + o_changelog=args.changelog, o_json=args.json) def c_init(args): ''' @@ -613,12 +617,16 @@ def arg_parser_init(): p.set_defaults(func=c_help, parser=parser, subparser=subparser) # info command parser p = subparser.add_parser("info", help=c_info.__doc__.lower()) + p.add_argument("-a", "--all", action="store_true", + help="display all information") + p.add_argument("-j", "--json", action="store_true", + help="display all information formated in json") p.add_argument("-c", "--changelog", action="store_true", help="display image changelog") - p.add_argument("-j", "--json", action="store_true", - help="output is formated in json") - p.add_argument("-v", "--verbose", action="store_true", - help="verbose output") + p.add_argument("-f", "--files", action="store_true", + help="display image files") + p.add_argument("-p", "--payloads", action="store_true", + help="display image payloads") p.add_argument("pattern", nargs="+", help="path|[repository/][image][:version]") p.set_defaults(func=c_info) diff --git a/completion/bash/is b/completion/bash/is index 3c100f25a3672e90550c0fb6b575c99d60ddf82c..34fef885e4a519f5eb4fcb09c73c94ff200a00ac 100644 --- a/completion/bash/is +++ b/completion/bash/is @@ -139,7 +139,7 @@ _is() { (( args == 2 )) && _opt "${cmds[@]}" ;; info) - [[ "$cur" == -* ]] && _opt '-v --verbose -c --changelog' && return 0 + [[ "$cur" == -* ]] && _opt '-a --all -j --json -c --changelog -f --files -p --payloads' && return 0 _image ;; init) diff --git a/completion/zsh/_installsystems b/completion/zsh/_installsystems index 42e45f07eba702887d83d76582a2fd4149fb92c1..c992a120829a84d3edee590c23592b506bcffa40 100644 --- a/completion/zsh/_installsystems +++ b/completion/zsh/_installsystems @@ -227,9 +227,11 @@ _is() { ;; (info) args+=( - '(-c --changelog)'{-c,--changelog}'[display image changelog]' + '(-a --all)'{-a,--all}'[display all information]' '(-j, --json)'{-j,--json}'[output is formated in json]' - '(-v --verbose)'{-v,--verbose}'[verbose output]' + '(-c --changelog)'{-c,--changelog}'[display image changelog]' + '(-f --files)'{-f,--files}'[display image files]' + '(-p --payloads)'{-p,--payloads}'[display image payloads]' '*:image:_installsystems_images' ) ;; diff --git a/doc/is.1.rst b/doc/is.1.rst index 9bf42ac7a2d2b67674ed03f0856a7f88aaba3a62..138427f485c3773e173d269701bbebc32eccc6f4 100644 --- a/doc/is.1.rst +++ b/doc/is.1.rst @@ -203,17 +203,23 @@ help [-h] Show help. -info [-h] [-c] [-j] [-v] ... - Display info about one *image* (or more). +info [-h] [-a] [-j] [-c] [-f] [-p] ... + Display information about one *image* (or more). - -c, --changelog - display *image* changelog + -a, --all + display all information available -j, --json - output is formated in json + display all information formated in json + + -c, --changelog + display image changelog + + -f, --files + display image files - -v, --verbose - verbose output + -p, --payloads + display image payloads init [-h] *repository*... diff --git a/installsystems/image.py b/installsystems/image.py index 7fef9b2c177496953caf586e448e3b033b0462c3..ecb869e11128ae71e22ccc41cabd73b16492743d 100644 --- a/installsystems/image.py +++ b/installsystems/image.py @@ -903,7 +903,7 @@ class PackageImage(Image): warn(u"Invalid changelog: %s" % e) return desc - def show(self, o_verbose=False, o_changelog=False, o_json=False): + def show(self, o_payloads=False, o_files=False, o_changelog=False, o_json=False): ''' Display image content ''' @@ -915,15 +915,17 @@ class PackageImage(Image): out(u'#yellow#Date:#reset# %s' % istools.time_rfc2822(self.date)) out(u'#yellow#Description:#reset# %s' % self.description) out(u'#yellow#Author:#reset# %s' % self.author) - if o_verbose: - # field is_build_version is new in version 5. I can be absent. - try: out(u'#yellow#IS build version:#reset# %s' % self.is_build_version) - except AttributeError: pass - # field is_min_version is new in version 5. I can be absent. - try: out(u'#yellow#IS minimum version:#reset# %s' % self.is_min_version) - except AttributeError: pass + # field is_build_version is new in version 5. I can be absent. + try: out(u'#yellow#IS build version:#reset# %s' % self.is_build_version) + except AttributeError: pass + # field is_min_version is new in version 5. I can be absent. + try: out(u'#yellow#IS minimum version:#reset# %s' % self.is_min_version) + except AttributeError: pass + out(u'#yellow#Format:#reset# %s' % self.format) out(u'#yellow#MD5:#reset# %s' % self.md5) - if o_verbose: + out(u'#yellow#Payload count:#reset# %s' % len(self.payload)) + # display payloads + if o_payloads: payloads = self.payload for payload_name in payloads: payload = payloads[payload_name] @@ -932,11 +934,12 @@ class PackageImage(Image): out(u' #yellow#Size:#reset# %s' % (istools.human_size(payload.size))) out(u' #yellow#MD5:#reset# %s' % payload.md5) # display image content - out('#light##yellow#Content:#reset#') - self._tarball.list(o_verbose) + if o_files: + out('#light##yellow#Files:#reset#') + self._tarball.list(True) # display changelog if o_changelog: - self.changelog.show(int(self.version), o_verbose) + self.changelog.show(self.version) def check(self, message="Check MD5"): '''