summaryrefslogtreecommitdiffstats
path: root/vespabase/src/Defaults.pm
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-06-15 23:09:44 +0200
commit72231250ed81e10d66bfe70701e64fa5fe50f712 (patch)
tree2728bba1131a6f6e5bdf95afec7d7ff9358dac50 /vespabase/src/Defaults.pm
Publish
Diffstat (limited to 'vespabase/src/Defaults.pm')
-rw-r--r--vespabase/src/Defaults.pm59
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);
+ }
+}