The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Tapper::Config - Tapper - Context sensitive configuration hub for all Tapper libs

SYNOPSIS

 use Tapper::Config;
 say Tapper::Config->subconfig->{test_value};
 say Tapper::Config->subconfig->{paths}{build_conf_path};

default_merge

Merges values from alternative config file locations into the config. This allows to overwrite values given from the config provided with the module. It searches for config in the following places. * /etc/tapper.cfg * $ENV{HOME}/.tapper/tapper.cfg * filename given in $ENV{TAPPER_CONFIG_FILE}

@param hash ref - config

@return hash ref - merged config

Environment merge

Depending on environment variables a context of life, test, or development is derived. Default is live. If HARNESS_ACTIVE is set the context is test, if TAPPER_DEVELOPMENT is set to 1 the context is development.

This context is used for creating the final config. Inside the config all keys under development or test are merged up into the main level. Therefore usually there you put special values overriding defaults.

Special entries

There are entries that are handled in special way:

files.log4perl_cfg

This local path/file entry is prepended by the sharedir path of Tapper::Config to make it an absolute path.

database

When the environment variable TAPPERDBMS is set to postgresql (or mysql) then the config values for database.TestrunDB are overwritten by the values <database.by_TAPPERDBMS.postgresql.TestrunDB> respectively.

This introduces a backwards compatible way of using another DBMS with Tapper, in particular PostgreSQL.

These special entries are prepared after the default and context merges.

subconfig

Return the actual config for the current context.

AUTHORS

  • AMD OSRC Tapper Team <tapper@amd64.org>

  • Tapper Team <tapper-ops@amazon.com>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2018 by Advanced Micro Devices, Inc..

This is free software, licensed under:

  The (two-clause) FreeBSD License