diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2023-09-29 14:05:33 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2023-10-02 16:40:52 +0300 |
commit | cfc3ca1bbb9ac617006a5af575676eeb6e520390 (patch) | |
tree | 6d6a9f17c772c11019f770bfad58987af3ad5e6f /bdep/ci.cxx | |
parent | 8d6f54f819d857aa89135a2474d5951ef02fd068 (diff) |
Add support for *-build-*email package manifest value overrides in bdep-ci
Diffstat (limited to 'bdep/ci.cxx')
-rw-r--r-- | bdep/ci.cxx | 26 |
1 files changed, 22 insertions, 4 deletions
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<cmd_ci_override>. 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<origin> (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. // |