From cfc3ca1bbb9ac617006a5af575676eeb6e520390 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Fri, 29 Sep 2023 14:05:33 +0300 Subject: Add support for *-build-*email package manifest value overrides in bdep-ci --- bdep/ci.cxx | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'bdep/ci.cxx') diff --git a/bdep/ci.cxx b/bdep/ci.cxx index 473a5fa..74cfd7a 100644 --- a/bdep/ci.cxx +++ b/bdep/ci.cxx @@ -213,10 +213,6 @@ namespace bdep 0, 0, 0}); // File positions. }; - // Add the default overrides. - // - override ("build-email", "", origin::build_email); - // Append the overrides specified by --override, --overrides-file, // --build-email, and --builds which are all handled by // cli::parser. But first verify that they don't clash @@ -229,6 +225,8 @@ namespace bdep (o.interactive_specified () && o.interactive ().find ('/') != string::npos)); + bool build_email_ovr (false); + if (o.overrides_specified ()) { const char* co (o.target_config_specified () ? "--target-config" : @@ -258,10 +256,25 @@ namespace bdep n == "builds" || n == "build-include" || n == "build-exclude")) + { fail << "invalid " << to_string (static_cast (nv.name_line)) << ": " << "'" << n << "' override specified together with " << co << info << "override: " << n << ": " << nv.value; + } + + if (n == "build-email" || + n == "build-warning-email" || + n == "build-error-email" || + (n.size () > 12 && + n.compare (n.size () - 12, 12, "-build-email") == 0) || + (n.size () > 20 && + n.compare (n.size () - 20, 20, "-build-warning-email") == 0) || + (n.size () > 18 && + n.compare (n.size () - 18, 18, "-build-error-email") == 0)) + { + build_email_ovr = true; + } } overrides.insert (overrides.end (), @@ -269,6 +282,11 @@ namespace bdep o.overrides ().end ()); } + // Add the default overrides. + // + if (!build_email_ovr) + override ("build-email", "", origin::build_email); + // Append the overrides specified by --target-config, but first verify // that they don't clash with the other build constraints-related options. // -- cgit v1.1