diff --git a/client/equo.py b/client/equo.py index caff56e8e..b85c05487 100644 --- a/client/equo.py +++ b/client/equo.py @@ -78,6 +78,7 @@ help_opts = [ (2, 'disable', 3, _('disable given repository')), (2, 'add ', 2, _('add repository (pass repository string)')), (2, 'remove ', 2, _('remove repository')), + (2, 'list', 3, _('list active repositories')), (2, 'mirrorsort ', 2, _('reorder mirrors basing on response time')), (2, 'merge [sources] ', 1, _('merge content of source repos to dest [for developers]')), (3, '--conflicts', 1, _('also remove dependency conflicts during merge')), diff --git a/client/text_repositories.py b/client/text_repositories.py index d15a0784d..a29844b1e 100644 --- a/client/text_repositories.py +++ b/client/text_repositories.py @@ -21,7 +21,7 @@ import copy from entropy.const import etpConst, etpUi, const_debug_write from entropy.output import red, darkred, blue, brown, bold, darkgreen, green, \ - print_info, print_warning, print_error, purple, teal + print_info, print_warning, print_error, purple, teal, print_generic from entropy.core.settings.base import SystemSettings as SysSet from entropy.misc import ParallelTask from entropy.i18n import _ @@ -88,28 +88,29 @@ def repositories(options): return 1 myopts = options[1:] - if not myopts: - rc = -10 + opts_len = len(myopts) + try: + repo_opt = myopts[0] + except IndexError: + repo_opt = None + if repo_opt == "enable" and opts_len: + rc = _enable_repositories(entropy_client, myopts) + elif repo_opt == "disable" and opts_len: + rc = _disable_repositories(entropy_client, myopts) + elif repo_opt == "add" and opts_len: + rc = _add_repository(entropy_client, myopts) + elif repo_opt == "remove" and opts_len: + rc = _remove_repository(entropy_client, myopts) + elif repo_opt == "list": + rc = _list_repository(entropy_client) + elif repo_opt == "mirrorsort" and opts_len: + rc = _mirror_sort(entropy_client, myopts) + elif repo_opt == "merge" and opts_len: + myopts = [x for x in myopts if x not in ("--conflicts",)] + rc = _merge_repository(entropy_client, myopts, + remove_conflicts = e_req_conflicts) else: - repo_opt = myopts.pop(0) - if not myopts: - rc = -10 - elif repo_opt == "enable": - rc = _enable_repositories(entropy_client, myopts) - elif repo_opt == "disable": - rc = _disable_repositories(entropy_client, myopts) - elif repo_opt == "add": - rc = _add_repository(entropy_client, myopts) - elif repo_opt == "remove": - rc = _remove_repository(entropy_client, myopts) - elif repo_opt == "mirrorsort": - rc = _mirror_sort(entropy_client, myopts) - elif repo_opt == "merge": - myopts = [x for x in myopts if x not in ("--conflicts",)] - rc = _merge_repository(entropy_client, myopts, - remove_conflicts = e_req_conflicts) - else: - rc = -10 + rc = -10 elif cmd == "notice": myopts = options[1:] @@ -180,6 +181,29 @@ def _add_repository(entropy_client, repo_strings): return 0 +def _list_repository(entropy_client): + + available_repos = SystemSettings['repositories']['available'] + excluded_repos = SystemSettings['repositories']['excluded'] + + default_repo = SystemSettings['repositories']['default_repository'] + repositories = entropy_client.repositories() + for repository in repositories: + repo_data = available_repos.get(repository) + desc = _("N/A") + if repo_data is None: + repo_data = excluded_repos.get(repository) + if repo_data is not None: + desc = repo_data.get('description', desc) + + repo_str = " " + if repository == default_repo: + repo_str = purple("* ") + print_generic("%s%s\n %s" % ( + repo_str, darkgreen(repository), brown(desc),)) + + return 0 + def _remove_repository(entropy_client, repo_ids): excluded_repos = SystemSettings['repositories']['excluded'] diff --git a/docs/man/equo.pod b/docs/man/equo.pod index 40eb21464..13b9fecd2 100644 --- a/docs/man/equo.pod +++ b/docs/man/equo.pod @@ -99,6 +99,10 @@ add repository (pass repository string) remove repository +=item [2] B + +list active repositories + =item [2] BidE> reorder mirrors basing on response time diff --git a/docs/man/man1/equo.1 b/docs/man/man1/equo.1 index 4e2efebdd..ed3112510 100644 --- a/docs/man/man1/equo.1 +++ b/docs/man/man1/equo.1 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "EQUO 1" -.TH EQUO 1 "2012-04-06" "perl v5.12.4" "Entropy" +.TH EQUO 1 "2012-05-09" "perl v5.12.4" "Entropy" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -202,6 +202,9 @@ add repository (pass repository string) .IP "[2] \fBremove \fR" 4 .IX Item "[2] remove " remove repository +.IP "[2] \fBlist\fR" 4 +.IX Item "[2] list" +list active repositories .IP "[2] \fBmirrorsort \fR" 4 .IX Item "[2] mirrorsort " reorder mirrors basing on response time