code_size_compare: add option --stdout to show result in sys.stdout

Signed-off-by: Yanray Wang <yanray.wang@arm.com>
diff --git a/scripts/code_size_compare.py b/scripts/code_size_compare.py
index e42a660..0bd9143 100755
--- a/scripts/code_size_compare.py
+++ b/scripts/code_size_compare.py
@@ -275,7 +275,7 @@
             old_rev: str,
             new_rev: str,
             output_stream,
-            with_markdown=False
+            result_options: SimpleNamespace
     ) -> None:
         """Write a comparision result into a stream between two revisions.
 
@@ -283,8 +283,9 @@
         new_rev: new git revision to compared with.
         output_stream: stream which the code size record is written to.
                        (E.g: file / sys.stdout)
-        with_markdown: write comparision result in a markdown table.
-                       (Default: False)
+        result_options: SimpleNamespace containing options for comparison result.
+            with_markdown: write comparision result in a markdown table. (Default: False)
+            stdout: direct comparison result into sys.stdout. (Default: False)
         """
         raise NotImplementedError
 
@@ -469,11 +470,14 @@
             old_rev: str,
             new_rev: str,
             output_stream,
-            with_markdown=False
+            result_options: SimpleNamespace
     ) -> None:
         """Write a comparision result into a stream between two revisions."""
-        output = open(output_stream, "w")
-        self.write_comparison(old_rev, new_rev, output, with_markdown)
+        if result_options.stdout:
+            output = sys.stdout
+        else:
+            output = open(output_stream, "w")
+        self.write_comparison(old_rev, new_rev, output, result_options.with_markdown)
 
 
 class CodeSizeComparison:
@@ -484,7 +488,6 @@
             old_size_version: SimpleNamespace,
             new_size_version: SimpleNamespace,
             code_size_common: SimpleNamespace,
-            result_dir: str,
     ) -> None:
         """
         old_revision: revision to compare against.
@@ -492,7 +495,7 @@
         result_dir: directory for comparison result.
         """
         self.repo_path = "."
-        self.result_dir = os.path.abspath(result_dir)
+        self.result_dir = os.path.abspath(code_size_common.result_options.result_dir)
         os.makedirs(self.result_dir, exist_ok=True)
 
         self.csv_dir = os.path.abspath("code_size_records/")
@@ -566,7 +569,7 @@
                 self.old_size_version.revision, "and", self.new_size_version.revision)
         self.code_size_generator.size_generator_write_comparison(\
                 self.old_size_version.revision, self.new_size_version.revision,\
-                output_file, self.code_size_common.with_markdown)
+                output_file, self.code_size_common.result_options)
         return 0
 
     def get_comparision_results(self) -> int:
@@ -612,6 +615,10 @@
         '--markdown', action='store_true', dest='markdown',
         help="Show comparision of code size in a markdown table\
               (only show the files that have changed).")
+    group_optional.add_argument(
+        '--stdout', action='store_true', dest='stdout',
+        help="Set this option to direct comparison result into sys.stdout.\
+              (Default: file)")
     comp_args = parser.parse_args()
 
     if os.path.isfile(comp_args.result_dir):
@@ -642,13 +649,17 @@
         make_cmd='',
     )
     code_size_common = SimpleNamespace(
+        result_options=SimpleNamespace(
+            result_dir=comp_args.result_dir,
+            with_markdown=comp_args.markdown,
+            stdout=comp_args.stdout,
+        ),
         host_arch=detect_arch(),
         measure_cmd='size -t',
-        with_markdown=comp_args.markdown
     )
 
     size_compare = CodeSizeComparison(old_size_version, new_size_version,\
-            code_size_common, comp_args.result_dir)
+            code_size_common)
     return_code = size_compare.get_comparision_results()
     sys.exit(return_code)