On 12/07/2018 10:45 AM, Matt Zagrabelny wrote:

On Fri, Dec 7, 2018 at 7:42 AM Arthur Zakirov <a.zaki...@postgrespro.ru <mailto:a.zaki...@postgrespro.ru>> wrote:

    On 07.12.2018 01:34, Matt Zagrabelny wrote:
    >
    >
    > On Thu, Dec 6, 2018 at 4:24 PM Alvaro Herrera
    <alvhe...@2ndquadrant.com <mailto:alvhe...@2ndquadrant.com>
    > <mailto:alvhe...@2ndquadrant.com <mailto:alvhe...@2ndquadrant.com>>>
    wrote:
    >
    >     Sure, just define a pg_service.conf file.
    > https://www.postgresql.org/docs/11/libpq-pgservice.html
    >
    >
    > Thanks Alvaro!
    >
    > Is there any shorter version than:
    >
    > psql "service=foo"
    >
    > ?
    >
    > If not, I can make a shell alias that puts the "service=$@" into the
    > command.



Thanks for the hints and discussion about this.

Here's my final implementation for the curious and to close the loop:

# a zsh function to avoid having to type "service="

$ which pssql
pssql () {
        psql "service=$@"
}

# and a zsh completion function:

$ cat ~/.fpath/_pssql
#compdef pssql

PG_SERVICES_CONF=~/.pg_service.conf

if [[ -r ${PG_SERVICES_CONF} ]]; then
    compadd $(sed -nE 's/^ *\[(.*)\] *$/\1/p' ${PG_SERVICES_CONF})
fi

 It works like a charm!

I made bash functions to do something similar, with just hardcoded server names.  It has auto-complete and allows me to use descriptive names instead of server names and custom postgres versions.

--
Angular momentum makes the world go 'round.

Reply via email to