[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [OSSTEST PATCH 3/4] cs-ajust-flight: Provide runvar-build-set
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> --- cs-adjust-flight | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/cs-adjust-flight b/cs-adjust-flight index 33ff9df..45c1420 100755 --- a/cs-adjust-flight +++ b/cs-adjust-flight @@ -14,6 +14,7 @@ # runvar-del <job-spec> <var-spec> # runvar-change <job-spec> <var-spec> <old-value> <new-value> # runvar-perlop <job-spec> <var-spec> <perl-expr> +# runvar-build-set <job-spec> <var-spec> <old-value> <flight>[.<job>] # recipe-set <job-spec> <new-value> # intended-blessing <intended-blessing> # branch-set <new-branch> @@ -26,6 +27,12 @@ # ^<pcre> means $foo =~ m/^<pcre>/ # /<pcre> means $foo =~ m/<pcre>/ # +# runvar-build-set always only affects runvars m/buildjob$/ +# and may be further limited by <var-spec>; +# and, <old-value> is matched against a value +# containing the being-manipulated flight name +# even if the actual runvar value omits it +# # <dst-flight>: # <flight> # new:<intended-blessing> @@ -335,6 +342,39 @@ sub change__runvar_perlop { }, 'IGNORE'); } +sub change__runvar_build_set { + die unless @changes >= 4; + my $jobs = shift @changes; + my $vars = shift @changes; + my $specoldval = shift @changes; + my $specval = shift @changes; + + my $matches=0; + + my ($oldvalok_fn) = notspec_exfn( + "RUNVAR-BUILD-SET '$jobs' '$vars' SPECOLDVAL", + $specoldval); + + for_runvars($jobs, $vars, sub { + my ($job, $name, $varrow) = @_; + return unless $name =~ m/buildjob$/; + + my $oldval = $varrow->{val}; + $oldval = flight_otherjob($dstflight,$oldval); + return unless $oldvalok_fn->($oldval); + + $matches++; + $oldval =~ s/^\d+\.//; # strip out previous flight + my $newval = $specval =~ m/\./ ? $specval : "$specval.$oldval"; + runvar_set($job, $name, $newval, " (modified from \`$oldval')") + if $newval ne $oldval; + }, 'IGNORE'); + + print STDERR + "runvar-build-set '$jobs' '$vars' '$specoldval' matched nothing!\n" + unless $matches; +} + sub change__recipe_set { die unless @changes >= 2; my $jobs = shift @changes; -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |