Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kwakwaversal/pg-servicefile
Perl interface to PostgreSQL connection service file - https://p3rl.org/Pg::ServiceFile
https://github.com/kwakwaversal/pg-servicefile
perl perl-module postgresql
Last synced: about 2 months ago
JSON representation
Perl interface to PostgreSQL connection service file - https://p3rl.org/Pg::ServiceFile
- Host: GitHub
- URL: https://github.com/kwakwaversal/pg-servicefile
- Owner: kwakwaversal
- License: other
- Created: 2018-02-23T20:40:32.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-03-16T21:04:02.000Z (almost 7 years ago)
- Last Synced: 2024-02-14T11:26:22.976Z (11 months ago)
- Topics: perl, perl-module, postgresql
- Language: Perl
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: Changes
- License: LICENSE
Awesome Lists containing this project
README
# NAME
Pg::ServiceFile - Basic PostgreSQL connection service file interface
# SYNOPSIS
use Pg::ServiceFile;
# Uses $ENV{PGSERVICEFILE} or user's `~/.pg_service.conf` file
my $pgservice = Pg::ServiceFile->new();# Use a specific service file - `pg_config --sysconfdir`/pg_service.conf
my $pgservice = Pg::ServiceFile->new(file => '/etc/postgresql-common/pg_service.conf');# Print all the service names
say $_ for @{$pgservice->names};# Get the username for a specific service name
say $pgservice->services->{foo}->{user};# DESCRIPTION
[Pg::ServiceFile](https://metacpan.org/pod/Pg::ServiceFile) is a partially complete interface to the PostgreSQL
connection service file. It's complete in the fact that it reads the `$ENV{PGSERVICEFILE}` or the user service file `~/.pg_service.conf` as
standard, but will not automatically retrieve and merge the system-wide service
file or check `PGSYSCONFDIR`.If you know the connection service file you want to use, and just want the data
as a `HASH` reference, you can use the simpler module
[Config::Pg::ServiceFile](https://metacpan.org/pod/Config::Pg::ServiceFile) which has less dependencies and features.# ATTRIBUTES
[Pg::ServiceFile](https://metacpan.org/pod/Pg::ServiceFile) implements the following attributes.
## data
my $pgservice = Pg::ServiceFile->new(data => <<~'PGSERVICEFILE');
[foo]
host=localhost
port=5432
user=foo
dbname=db_foo
password=password
PGSERVICEFILEmy $pgservice = Pg::ServiceFile->new(file => '~/.pg_service.conf');
say $pgservice->data;The connection service file data. This is the contents of ["file"](#file), or the
data that has been passed in directly during instantiation.## file
my $pgservice = Pg::ServiceFile->new();
say $pgservice->file; # ~/.pg_service.conf (if it exists)my $pgservice = Pg::ServiceFile->new(file => '~/myservice.conf');
say $pgservice->file; # ~/myservice.confDefaults to `$ENV{PGSERVICEFILE}` or `~/.pg_service.conf`, but can be
any valid connection service file.## name
local $ENV{PGSERVICE} = 'foo';
my $pgservice = Pg::ServiceFile->new();
say $pgservice->name; # foo
say $pgservice->service->{dbname}; # db_fooThe value of `$ENV{PGSERVICE}` if it exists, or whatever is set during
instantiation. It does not check to see if a corresponding service entry exists
in the service ["file"](#file), but ["service"](#service) will return the relevant data if
it does.## names
my $pgservice = Pg::ServiceFile->new();
say $_ for @{$pgservice->names};Returns the names of all the connection services from the service ["file"](#file).
## service
my $pgservice = Pg::ServiceFile->new(name => 'foo');
say $pgservice->service->{dbname}; # db_fooIf ["name"](#name) has been set via `$ENV{PGSERVICE}` or on instantiation, returns
the corresponding connection service. See ["name"](#name).## services
my $pgservice = Pg::ServiceFile->new();
while (my ($name, $service) = each %{$pgservice->services}) {
say "[$name] $service->{dbname} at $service->{host}";
}Returns a `HASH` of all of the connection services from ["file"](#file).
# CREDITS
> Erik Rijkers
# AUTHOR
Paul Williams
# COPYRIGHT
Copyright 2018- Paul Williams
# LICENSE
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.# SEE ALSO
[Config::Pg::ServiceFile](https://metacpan.org/pod/Config::Pg::ServiceFile),
[https://www.postgresql.org/docs/current/static/libpq-pgservice.html](https://www.postgresql.org/docs/current/static/libpq-pgservice.html).