Add --override option
authorTodd Lyons <tlyons@exim.org>
Sat, 19 Oct 2013 14:46:43 +0000 (07:46 -0700)
committerTodd Lyons <tlyons@exim.org>
Sat, 19 Oct 2013 14:46:43 +0000 (07:46 -0700)
Allows overriding conf options when testing.
Bugfix: features displayed always, only show when step requested.

EximBuild/Options.pm
run_build.pl

index 1ce78654587068261f094441c0c5255d7108c2dd..d0a5583c9ab58b780995355f6a16c251a66ac568 100644 (file)
@@ -23,7 +23,7 @@ BEGIN
     @option_list =qw(
       $forcerun $buildconf $keepall $help
       $quiet $from_source $from_source_clean $testmode
     @option_list =qw(
       $forcerun $buildconf $keepall $help
       $quiet $from_source $from_source_clean $testmode
-      $skip_steps $only_steps
+      $skip_steps $only_steps $override
       $nosend $nostatus $verbose
     );
 }
       $nosend $nostatus $verbose
     );
 }
@@ -41,7 +41,7 @@ use vars qw($VERSION); $VERSION = 'REL_0.1';
 our (
     $forcerun, $buildconf, $keepall,$help,
     $quiet, $from_source,$from_source_clean, $testmode,
 our (
     $forcerun, $buildconf, $keepall,$help,
     $quiet, $from_source,$from_source_clean, $testmode,
-    $skip_steps,$only_steps,
+    $skip_steps,$only_steps, $overrides,
     $nosend, $nostatus, $verbose,
 );
 
     $nosend, $nostatus, $verbose,
 );
 
@@ -61,6 +61,7 @@ my (%standard_options);
     'quiet' => \$quiet,
     'skip-steps=s' => \$skip_steps,
     'only-steps=s' => \$only_steps,
     'quiet' => \$quiet,
     'skip-steps=s' => \$skip_steps,
     'only-steps=s' => \$only_steps,
+    'override=s@' => \$overrides,
 );
 
 $buildconf = "build-farm.conf"; # default value
 );
 
 $buildconf = "build-farm.conf"; # default value
index 7e9ab32c169a935e95db2e1bccaa191101b6bd76..2374688e20f50960afa1d49b273a3c4d284e74b7 100755 (executable)
@@ -178,6 +178,17 @@ my  $scm_timeout_secs = $EximBuild::conf{scm_timeout_secs}
 print scalar(localtime()),": buildfarm run for $animal:$branch starting\n"
   if $verbose;
 
 print scalar(localtime()),": buildfarm run for $animal:$branch starting\n"
   if $verbose;
 
+# Allow commandline overrides of conf variables
+foreach my $arg ( @{$EximBuild::Options::overrides} )
+{
+  if (my ($key,$val) = split '=', $arg)
+  {
+    $EximBuild::conf{$key} = $val;
+    printf "Commandline override: '$key' = '%s'\n", $EximBuild::conf{$key}
+      if $verbose;
+  }
+}
+
 if (ref($force_every) eq 'HASH')
 {
     $force_every = $force_every->{$branch} || $force_every->{default};
 if (ref($force_every) eq 'HASH')
 {
     $force_every = $force_every->{$branch} || $force_every->{default};
@@ -793,6 +804,7 @@ sub writelog
 
 sub display_features
 {
 
 sub display_features
 {
+    return unless step_wanted('features');
     my @out = `cd $exim
                src/build-*/exim -C test/confs/0000 -bV `;
     my $status = $? >>8;
     my @out = `cd $exim
                src/build-*/exim -C test/confs/0000 -bV `;
     my $status = $? >>8;