diff --git a/bin/is b/bin/is index 66a97b0ac85a07044c88264e7dd5b66716137d45..28b1c57ecee4c825612b86952498a99f1ecb6606 100755 --- a/bin/is +++ b/bin/is @@ -339,7 +339,8 @@ def c_list(args): repoman.show_images(args.pattern, o_long=args.long, o_json=args.json, o_md5=args.md5, o_date=args.date, o_author=args.author, o_size=args.size, o_url=args.url, - o_description=args.description) + o_description=args.description, o_format=args.format, + o_min_version=args.is_min_version) def c_motd(args): ''' @@ -640,6 +641,10 @@ def arg_parser_init(): help="display image date") p.add_argument("-D", "--description", action="store_true", help="display image description") + p.add_argument("-f", "--format", action="store_true", + help="display image format") + p.add_argument("-i", "--is-min-version", action="store_true", + help="display minimum Installsystems version required") p.add_argument("-j", "--json", action="store_true", help="output is formated in json") p.add_argument("-l", "--long", action="store_true", diff --git a/completion/bash/is b/completion/bash/is index 977f0144a63016329000030e7debcaa19cbaae43..b4971a7baa5b88597b061337659a3542397c226e 100644 --- a/completion/bash/is +++ b/completion/bash/is @@ -153,7 +153,7 @@ _is() { (( args > 2 )) && _filedir ;; list) - [[ "$cur" == -* ]] && _opt '-h --help -l --long -j --json -m --md5 -s --size -d --date -A --author -u --url -D --description' && return 0 + [[ "$cur" == -* ]] && _opt '-h --help -l --long -j --json -m --md5 -s --size -d --date -A --author -u --url -D --description -f --format -i --is-min-version' && return 0 _remote_image ;; motd) diff --git a/completion/zsh/_installsystems b/completion/zsh/_installsystems index 1edddc51c39d9f4083f0c6c0bfdc6368dfe51502..26eea1cc47de980d84371a7de8810b70dfb36759 100644 --- a/completion/zsh/_installsystems +++ b/completion/zsh/_installsystems @@ -250,6 +250,8 @@ _is() { '(-A --author)'{-A,--author}'[display image author]' '(-d --date)'{-d,--date}'[display image date]' '(-D --description)'{-D,--description}'[display image description]' + '(-f --format)'{-f,--format}'[display image format]' + '(-i --is-min-version)'{-i,--is-min-version}'[display minimum Installsystems version required]' '(-j --json)'{-j,--json}'[output is formated in json]' '(-l --long)'{-l,--long}'[long display]' '(-m --md5)'{-m,--md5}'[display image md5]' diff --git a/doc/is.1.rst b/doc/is.1.rst index b7155842404c300d6b45c2a4f169a879dec33cef..e5167debe5e54e4d2c93863bf1fa4c7b5532b216 100644 --- a/doc/is.1.rst +++ b/doc/is.1.rst @@ -227,7 +227,7 @@ install [--dry-run] do not execute setup scripts -list [-h] [-A] [-d] [-D] [-j] [-l] [-m] [-s] [-u] [...] +list [-h] [-A] [-d] [-D] [-f] [-j] [-i] [-l] [-m] [-s] [-u] [...] List available *images*. By default, it displays the image name and its repository, ordered by repositories/images/version. -A, --author @@ -239,9 +239,15 @@ list [-h] [-A] [-d] [-D] [-j] [-l] [-m] [-s] [-u] [...] -D, --description display image description + -f, --format + display image format + -j, --json output is formated in json + -i, --is-min-version + display minimum Installsystems version required + -l, --long long display diff --git a/installsystems/repository.py b/installsystems/repository.py index a16c96cd3f21246bf2bd3da5f861163522b0b9b0..1021b5855d5f49300f8cafbe466d55983a2b05de 100644 --- a/installsystems/repository.py +++ b/installsystems/repository.py @@ -418,10 +418,13 @@ class Repository(object): ''' Return a dict of information on images ''' - db_images = self.db.ask("SELECT md5, name, version, date,\ - author, description, size FROM image ORDER BY name, version").fetchall() + db_images = self.db.ask("SELECT md5, name, version, date, author, \ + description, size, is_min_version, format \ + FROM image ORDER BY name, version").fetchall() + images = [] - field = ("md5", "name", "version", "date", "author", "description", "size") + field = ("md5", "name", "version", "date", "author", "description", + "size", "is_min_version", "format") for info in db_images: d = dict(zip(field, info)) d["repo"] = self.config.name @@ -934,8 +937,8 @@ class RepositoryManager(object): self[repo].search(pattern) def show_images(self, patterns, o_json=False, o_long=False, o_md5=False, - o_date=False, o_author=False, o_size=False, - o_url=False, o_description=False): + o_date=False, o_author=False, o_size=False, o_url=False, + o_description=False, o_format=False, o_min_version=False): ''' Show images inside manager ''' @@ -962,6 +965,10 @@ class RepositoryManager(object): l.append(u" #l#url:#R# %s" % img["url"]) if o_description or o_long: l.append(u" #l#description:#R# %s" % img["description"]) + if o_format or o_long: + l.append(u" #l#format:#R# %s" % img["format"]) + if o_min_version or o_long: + l.append(u" #l#is min version:#R# %s" % img["is_min_version"]) s = os.linesep.join(l) if len(s) > 0: out(s)