diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2016-06-15 23:09:44 +0200 |
commit | 72231250ed81e10d66bfe70701e64fa5fe50f712 (patch) | |
tree | 2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /vespabase/src/Defaults.pm |
Publish
Diffstat (limited to 'vespabase/src/Defaults.pm')
-rw-r--r-- | vespabase/src/Defaults.pm | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/vespabase/src/Defaults.pm b/vespabase/src/Defaults.pm new file mode 100644 index 00000000000..48a3b4fdbbc --- /dev/null +++ b/vespabase/src/Defaults.pm @@ -0,0 +1,59 @@ +# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +# +# utility functions for reading and setting environment defaults + +package Yahoo::Vespa::Defaults; + +use strict; +use warnings; +use Carp (); + +BEGIN { # - Define exports from this module + use base 'Exporter'; + our @EXPORT = qw( + considerFallback + readConfFile + ); +} + +return 1; + +########################## Default exported functions ######################## + +sub considerFallback { + my ( $varname, $value ) = @_; + my $prevVal = $ENV{$varname}; + if ( ! defined $value || $value eq '' ) { + # print STDERR " (debug) skipping empty value for $varname\n"; + return; + } + if ( defined $prevVal && ! $prevVal eq '' ) { + # print STDERR " (debug) $varname already is '$prevVal', skipping new value '$value'\n"; + return; + } + $ENV{$varname} = $value; +} + +# Use this function to +sub readConfFile { + my $vHome = $ENV{'VESPA_HOME'}; + if ( $vHome eq "" || ! -d $vHome ) { + die "Bad or missing VESPA_HOME environment variable $vHome\n"; + } + my $deffile = $vHome . '/conf/vespa/default-env.txt' ; + if ( -f $deffile ) { + open(DEFFILE, $deffile) or die "Cannot open '$deffile'\n"; + while (<DEFFILE>) { + chomp; + my ( $action, $varname, $value ) = split(' ', $_, 3); + if ( $varname !~ m{^\w+$} ) { + # print STDERR "INVALID variable name '$varname' in $deffile, skipping\n"; + next; + } + if ( $action eq 'fallback' ) { + considerFallback($varname, $value); + } + } + close(DEFFILE); + } +} |