summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrançois Pietka <francois@pietka.fr>2017-07-15 00:57:37 +0200
committerFrançois Pietka <francois@pietka.fr>2017-07-15 01:18:32 +0200
commite8e7e41d703ee32dbdabb4f67831958e79b97de3 (patch)
tree49bed426788310ed7b2c139621b4be7afdeba1f7
parentce88f56107bba7c2d5d93459da453a42db4e4d25 (diff)
Add option to list databases from command line
-rwxr-xr-xpgcli/main.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/pgcli/main.py b/pgcli/main.py
index 70bd749e..3d826f81 100755
--- a/pgcli/main.py
+++ b/pgcli/main.py
@@ -787,11 +787,13 @@ class PGCli(object):
default=False,
help='Skip intro on startup and goodbye on exit.')
@click.option('--prompt', help='Prompt format (Default: "\\u@\\h:\\d> ").')
+@click.option('-l', '--list', 'list_databases', is_flag=True, help='list '
+ 'available databases, then exit.')
@click.argument('database', default=lambda: None, envvar='PGDATABASE', nargs=1)
@click.argument('username', default=lambda: None, envvar='PGUSER', nargs=1)
def cli(database, username_opt, host, port, prompt_passwd, never_prompt,
- single_connection, dbname, username, version, pgclirc, dsn, row_limit,
- less_chatty, prompt):
+ single_connection, dbname, username, version, pgclirc, dsn, row_limit,
+ less_chatty, prompt, list_databases):
if version:
print('Version:', __version__)
@@ -840,6 +842,19 @@ def cli(database, username_opt, host, port, prompt_passwd, never_prompt,
else:
pgcli.connect(database, host, user, port)
+ if list_databases:
+ cur, headers, status = pgcli.pgexecute.full_databases()
+
+ title = 'List of databases'
+ settings = OutputSettings(
+ table_format='ascii',
+ missingval='<null>'
+ )
+ formatted = format_output(title, cur, headers, status, settings)
+ click.echo_via_pager('\n'.join(formatted))
+
+ sys.exit(0)
+
pgcli.logger.debug('Launch Params: \n'
'\tdatabase: %r'
'\tuser: %r'