[dvsim/syn/lint] Add options to selectively sanitize reports

Signed-off-by: Michael Schaffner <msf@google.com>
diff --git a/util/dvsim/SynCfg.py b/util/dvsim/SynCfg.py
index 1cddae3..4e329db 100644
--- a/util/dvsim/SynCfg.py
+++ b/util/dvsim/SynCfg.py
@@ -353,23 +353,33 @@
                              ("Elab Errors", "elab_errors"),
                              ("Compile Warnings", "compile_warnings"),
                              ("Compile Errors", "compile_errors")]
-
+            fail_msgs = ""
             has_msg = False
             for _, key in hdr_key_pairs:
                 if key in self.result['messages']:
                     has_msg = True
                     break
 
-            if has_msg and not self.args.publish:
-                results_str += "\n### Errors and Warnings for Build Mode `'" + mode.name + "'`\n"
+            if has_msg:
+                fail_msgs += "\n### Errors and Warnings for Build Mode `'" + mode.name + "'`\n"
                 for hdr, key in hdr_key_pairs:
                     msgs = self.result['messages'].get(key)
-                    results_str += print_msg_list("#### " + hdr, msgs, self.max_msg_count)
+                    fail_msgs += print_msg_list("#### " + hdr, msgs, self.max_msg_count)
+
+            # the email and published reports will default to self.results_md if they are
+            # empty. in case they need to be sanitized, override them and do not append
+            # detailed messages.
+            if self.sanitize_email_results:
+                self.email_results_md = results_str
+            if self.sanitize_publish_results:
+                self.publish_results_md = results_str
+
+            # locally generated result always contains all details
+            self.results_md = results_str + fail_msgs
 
             # TODO: add support for pie / bar charts for area splits and
             # QoR history
 
-        self.results_md = results_str
         # Write results to the scratch area
         self.results_file = self.scratch_path + "/results_" + self.timestamp + ".md"
         log.info("Detailed results are available at %s", self.results_file)