X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/1a03dd7a7d10a4843848ff60957c03110a09df43..c436da861845723ab18f56dba96052cf2569e539:/sdk/perl/lib/Arvados.pm diff --git a/sdk/perl/lib/Arvados.pm b/sdk/perl/lib/Arvados.pm index 97a44c86dd..31258f5172 100644 --- a/sdk/perl/lib/Arvados.pm +++ b/sdk/perl/lib/Arvados.pm @@ -33,7 +33,8 @@ Set up a client and retrieve the schema from the server. =item apiHost -Hostname of API discovery service. Default: C +Hostname of API discovery service. Default: C +environment variable, or C =item apiProtocolScheme @@ -81,9 +82,18 @@ sub new sub build { my $self = shift; - $self->{'authToken'} ||= $ENV{'ARVADOS_API_TOKEN'}; - $self->{'apiHost'} ||= $ENV{'ARVADOS_API_HOST'}; - $self->{'apiProtocolScheme'} ||= $ENV{'ARVADOS_API_PROTOCOL_SCHEME'}; + + $config = load_config_file("$ENV{HOME}/.config/arvados/settings.conf"); + + $self->{'authToken'} ||= + $ENV{ARVADOS_API_TOKEN} || $config->{ARVADOS_API_TOKEN}; + + $self->{'apiHost'} ||= + $ENV{ARVADOS_API_HOST} || $config->{ARVADOS_API_HOST}; + + $self->{'apiProtocolScheme'} ||= + $ENV{ARVADOS_API_PROTOCOL_SCHEME} || + $config->{ARVADOS_API_PROTOCOL_SCHEME}; $self->{'ua'} = new Arvados::Request; @@ -123,4 +133,21 @@ sub new_request Arvados::Request->new(); } +sub load_config_file ($) +{ + my $config_file = shift; + my %config; + + if (open (CONF, $config_file)) { + while () { + next if /^\s*#/ || /^\s*$/; # skip comments and blank lines + chomp; + my ($key, $val) = split /\s*=\s*/, $_, 2; + $config{$key} = $val; + } + } + close CONF; + return \%config; +} + 1;