I like how browsers show a little lock in the address bar depending on whether SSL is in use. This could be useful in psql as well. Here is a prototype patch.
Example: Put this in .psqlrc: \set PROMPT1 '%s%/%R%# ' $ psql test psql (9.6devel) Type "help" for help. 🔒test=# Without SSL: 🃏test=# Comments?
From b3a79d56507c61b6fa6efba6f97a37acf822d39f Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <peter_e@gmx.net> Date: Fri, 1 Apr 2016 00:00:00 +0000 Subject: [PATCH] psql: Add %s prompt placeholder for SSL status --- doc/src/sgml/ref/psql-ref.sgml | 9 +++++++++ src/bin/psql/prompt.c | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index 385cb59..b4044e2 100644 --- a/doc/src/sgml/ref/psql-ref.sgml +++ b/doc/src/sgml/ref/psql-ref.sgml @@ -3512,6 +3512,15 @@ <title id="APP-PSQL-prompting-title">Prompting</title> </varlistentry> <varlistentry> + <term><literal>%s</literal></term> + <listitem> + <para> + A character indicating whether SSL is in use. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><literal>%</literal><replaceable class="parameter">digits</replaceable></term> <listitem> <para> diff --git a/src/bin/psql/prompt.c b/src/bin/psql/prompt.c index 647e871..3c25a2f 100644 --- a/src/bin/psql/prompt.c +++ b/src/bin/psql/prompt.c @@ -21,6 +21,7 @@ #include "input.h" #include "prompt.h" #include "settings.h" +#include "mb/pg_wchar.h" /*-------------------------- @@ -44,6 +45,7 @@ * or a ! if session is not connected to a database; * in prompt2 -, *, ', or "; * in prompt3 nothing + * %s - SSL mode * %x - transaction status: empty, *, !, ? (unknown or no connection) * %l - The line number inside the current statement, starting from 1. * %? - the error code of the last query (not yet implemented) @@ -218,6 +220,24 @@ get_prompt(promptStatus_t status) } break; + case 's': + if (pset.db && PQsslInUse(pset.db)) + { + if (pset.encoding == PG_UTF8) + strlcpy(buf, "\xF0\x9F\x94\x92 ", sizeof(buf)); /* U+1F512 */ + else + strlcpy(buf, "#", sizeof(buf)); + } + else + { + if (pset.encoding == PG_UTF8) + strlcpy(buf, "\xF0\x9F\x83\x8F", sizeof(buf)); /* U+1F0CF */ + else + strlcpy(buf, "_", sizeof(buf)); + + } + break; + case 'x': if (!pset.db) buf[0] = '?'; -- 2.8.0
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers