diff --git a/bin/is b/bin/is index 556c212ef0be6dc5ae88cb4ccf3f5f30933e74b9..684d58031bf53b5c5b3c9ab9f7205bcd0d07fa81 100755 --- a/bin/is +++ b/bin/is @@ -246,8 +246,7 @@ def c_list(parser, args): repos = fnmatch.filter(repoman.onlines, o) if len(repos) > 0: for reponame in repos: - arrow(reponame) - repoman[reponame].show(verbose=args.verbose) + repoman[reponame].show(verbose=args.verbose, aspath=args.as_path) else: img, repo = select_image(o, repoman, args.best) img.show(verbose=args.verbose, changelog=args.changelog) @@ -452,6 +451,8 @@ p_list.add_argument("-b", "--best", action="store_true", default=False, help="in best mode, image is the most recent in all repositories") p_list.add_argument("-c", "--changelog", action="store_true", default=False, help="display image changelog") +p_list.add_argument("-p", "--as-path", action="store_true", default=False, + help="display repoistory content as path") p_list.add_argument("object", nargs="*", help="object syntax is <path|repository|[repository/]image[:version]>") p_list.set_defaults(func=c_list, subparser=p_list) diff --git a/installsystems/repository.py b/installsystems/repository.py index 7b3b704f466c8821669593e779e5008d42198074..24d3a55ca9d008b736f361ecf376346cfc74c567 100644 --- a/installsystems/repository.py +++ b/installsystems/repository.py @@ -307,28 +307,37 @@ class Repository(object): # update last file self.update_last() - def show(self, verbose=False): + def show(self, verbose=False, aspath=False): ''' List images in repository ''' - images = self.db.ask("SELECT md5, name, version, date,\ + if aspath: + images = self.db.ask("SELECT md5, name, version FROM image ORDER BY name, version").fetchall() + for (image_md5, image_name, image_version) in images: + s = "#light##blue#%s#reset#/#light##yellow#%s#reset#:#light##red#%s#reset#" % ( + self.config.name, image_name, image_version) + if verbose: + s += " [%s]" % image_md5 + out(s) + else: + arrow(self.config.name) + images = self.db.ask("SELECT md5, name, version, date,\ author, description, size FROM image ORDER BY name, version").fetchall() - - for (image_md5, image_name, image_version, image_date, image_author, - image_description, image_size) in images: - out("#light##yellow#%s #reset#v%s" % (image_name, image_version)) - if verbose: - out(" #yellow#Date:#reset# %s" % time.ctime(image_date)) - out(" #yellow#Description:#reset# %s" % image_description) - out(" #yellow#Author:#reset# %s" % image_author) - out(" #yellow#MD5:#reset# %s" % image_md5) - payloads = self.db.ask("SELECT md5, name, size FROM payload\ + for (image_md5, image_name, image_version, image_date, image_author, + image_description, image_size) in images: + out("#light##yellow#%s #reset#v%s" % (image_name, image_version)) + if verbose: + out(" #yellow#Date:#reset# %s" % time.ctime(image_date)) + out(" #yellow#Description:#reset# %s" % image_description) + out(" #yellow#Author:#reset# %s" % image_author) + out(" #yellow#MD5:#reset# %s" % image_md5) + payloads = self.db.ask("SELECT md5, name, size FROM payload\ WHERE image_md5 = ?", (image_md5,)).fetchall() - for payload_md5, payload_name, payload_size in payloads: - out(" #light##yellow#Payload:#reset# %s" % payload_name) - out(" #yellow#Size:#reset# %s" % (istools.human_size(payload_size))) - out(" #yellow#MD5:#reset# %s" % payload_md5) - out() + for payload_md5, payload_name, payload_size in payloads: + out(" #light##yellow#Payload:#reset# %s" % payload_name) + out(" #yellow#Size:#reset# %s" % (istools.human_size(payload_size))) + out(" #yellow#MD5:#reset# %s" % payload_md5) + out() def search(self, pattern): ''' @@ -621,7 +630,6 @@ class RepositoryManager(object): Show repository inside manager ''' for repo in self.repos: - repo.config.name s = "#light##blue#%s#reset#"% repo.config.name if verbose: s += " (%s)" % repo.config.path