diff --git a/bin/is b/bin/is index 99bbe9a2ca75d1fa7798101d3b65b4140b797d31..80065f876f05a54ccefed0c2b34edede4e283124 100755 --- a/bin/is +++ b/bin/is @@ -14,7 +14,6 @@ import re import fnmatch import warnings import argparse -import json import psutil import installsystems import installsystems.printer @@ -104,44 +103,6 @@ def get_images(patterns, repoman, local=True, min=None, max=None): for i in repoman.get_images(pattern, min=min, max=max): yield i -def show_images(repoman, 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): - ''' - Show repository inside manager - json: display output in json - long: display output in long format - all images parameter can be given in arguments to displayed - ''' - # get images list - images = {} - for pattern in patterns: - images.update(repoman.select_images(pattern)) - # display result - if o_json: - s = json.dumps(images) - else: - l = [] - for imgp in sorted(images.keys()): - img = images[imgp] - l.append(u"%s#R#/#l##b#%s#R#:#p#%s#R#" % ( - img["repo"], img["name"], img["version"])) - if o_md5 or o_long: - l[-1] = l[-1] + u" (#y#%s#R#)" % img["md5"] - if o_date or o_long: - l.append(u" #l#date:#R# %s" % istools.time_rfc2822(img["date"])) - if o_author or o_long: - l.append(u" #l#author:#R# %s" % img["author"]) - if o_size or o_long: - l.append(u" #l#size:#R# %s" % istools.human_size(img["size"])) - if o_url or o_long: - l.append(u" #l#url:#R# %s" % img["url"]) - if o_description or o_long: - l.append(u" #l#description:#R# %s" % img["description"]) - s = os.linesep.join(l) - if len(s) > 0: - out(s) ################################################################################ # Commands functions @@ -356,10 +317,10 @@ def c_list(args): args.pattern = ["*/*"] elif len(args.pattern) == 0: args.pattern = ["*"] - show_images(repoman, 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) + 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) def c_move(args): ''' diff --git a/installsystems/repository.py b/installsystems/repository.py index 6a533355cb4d677e28f1094561bbe57d836c3c4f..65682b74859bf7e7caf6632d9589dbd6b38c582f 100644 --- a/installsystems/repository.py +++ b/installsystems/repository.py @@ -15,6 +15,7 @@ import grp import tempfile import fnmatch import cStringIO +import json import installsystems import installsystems.tools as istools from installsystems.printer import * @@ -706,6 +707,41 @@ class RepositoryManager(object): arrow(repo.config.name) 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): + ''' + Show images inside manager + ''' + # get images list + images = {} + for pattern in patterns: + images.update(self.select_images(pattern)) + # display result + if o_json: + s = json.dumps(images) + else: + l = [] + for imgp in sorted(images.keys()): + img = images[imgp] + l.append(u"%s#R#/#l##b#%s#R#:#p#%s#R#" % ( + img["repo"], img["name"], img["version"])) + if o_md5 or o_long: + l[-1] = l[-1] + u" (#y#%s#R#)" % img["md5"] + if o_date or o_long: + l.append(u" #l#date:#R# %s" % istools.time_rfc2822(img["date"])) + if o_author or o_long: + l.append(u" #l#author:#R# %s" % img["author"]) + if o_size or o_long: + l.append(u" #l#size:#R# %s" % istools.human_size(img["size"])) + if o_url or o_long: + l.append(u" #l#url:#R# %s" % img["url"]) + if o_description or o_long: + l.append(u" #l#description:#R# %s" % img["description"]) + s = os.linesep.join(l) + if len(s) > 0: + out(s) + def purge_cache(self, pattern): ''' Remove local cached repository files