commit 1945b67fefbcf7b834b71275e301da06232f0241 Author: Nicolas Vigier boklm@torproject.org Date: Wed Mar 1 14:53:34 2017 +0100
Add the ENV option
Add the ENV option, allowing to define some default environment variables. --- NEWS | 2 ++ doc/rbm_config.asc | 7 +++++++ lib/RBM.pm | 4 ++++ rbm | 1 + test.pl | 1 + 5 files changed, 15 insertions(+)
diff --git a/NEWS b/NEWS index 663a281..5de36e0 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,5 @@ +- Add the ENV option + - Add the build_log option
- Add support for optional local configuration file rbm.local.conf diff --git a/doc/rbm_config.asc b/doc/rbm_config.asc index a461b3d..48e505c 100644 --- a/doc/rbm_config.asc +++ b/doc/rbm_config.asc @@ -151,6 +151,13 @@ fetch:: repository is fetched only if the selected commit cannot be found in the local clone. The default is +if_needed+.
+ENV:: + This option, defined in the workspace config, is a hash + containing the environment variables that will be defined + when rbm is starting. This is useful for defining variables + that can affect how the templates are processed (for instance + the +TZ+ variable if dates are used). + include::options_tar.asc[]
arch:: diff --git a/lib/RBM.pm b/lib/RBM.pm index 2248b41..632a8ba 100644 --- a/lib/RBM.pm +++ b/lib/RBM.pm @@ -75,6 +75,10 @@ sub find_config_file { exit_error("Can't find config file"); }
+sub set_default_env { + %ENV = (%ENV, %{$config->{ENV}}) if ref $config->{ENV} eq 'HASH'; +} + sub path { my ($path, $basedir) = @_; $basedir //= $config->{basedir}; diff --git a/rbm b/rbm index 050cff5..9a8ccf2 100755 --- a/rbm +++ b/rbm @@ -198,6 +198,7 @@ if (@ARGV == 0 || !$actions{$ARGV[0]}) { } usage('usage', $ARGV[0]) if grep { $_ eq '--help' } @ARGV[1..(@ARGV - 1)]; RBM::load_config unless $actions{$ARGV[0]}->{no_config}; +RBM::set_default_env unless $actions{$ARGV[0]}->{no_config}; $actions{$ARGV[0]}->{run}->(@ARGV);
# vim: expandtab sw=4 diff --git a/test.pl b/test.pl index 64bffd7..2748614 100755 --- a/test.pl +++ b/test.pl @@ -19,6 +19,7 @@ sub set_step { BEGIN { use_ok('RBM') }; chdir 'test'; RBM::load_config; +RBM::set_default_env; ok($RBM::config, 'load config');
my @tests = (