MLECO-3995: Pylint + Shellcheck compatibility

* All Python scripts updated to abide by Pylint rules
* good-names updated to permit short variable names:
  i, j, k, f, g, ex
* ignore-long-lines regex updated to allow long lines
  for licence headers
* Shell scripts now compliant with Shellcheck

Signed-off-by: Alex Tawse <Alex.Tawse@arm.com>
Change-Id: I8d5af8279bc08bb8acfe8f6ee7df34965552bbe5
diff --git a/scripts/py/gen_labels_cpp.py b/scripts/py/gen_labels_cpp.py
index 065ed5d..11d5040 100644
--- a/scripts/py/gen_labels_cpp.py
+++ b/scripts/py/gen_labels_cpp.py
@@ -1,6 +1,6 @@
 #!env/bin/python3
 
-#  SPDX-FileCopyrightText: Copyright 2021 Arm Limited and/or its affiliates <open-source-office@arm.com>
+#  SPDX-FileCopyrightText:  Copyright 2021, 2023 Arm Limited and/or its affiliates <open-source-office@arm.com>
 #  SPDX-License-Identifier: Apache-2.0
 #
 #  Licensed under the Apache License, Version 2.0 (the "License");
@@ -21,47 +21,83 @@
 this script to be called as part of the build framework to auto-generate the
 cpp file with labels that can be used in the application without modification.
 """
-import datetime
-from pathlib import Path
 from argparse import ArgumentParser
+from pathlib import Path
 
 from jinja2 import Environment, FileSystemLoader
 
+from gen_utils import GenUtils
+
+# pylint: disable=duplicate-code
 parser = ArgumentParser()
 
 # Label file path
-parser.add_argument("--labels_file", type=str, help="Path to the label text file", required=True)
-# Output file to be generated
-parser.add_argument("--source_folder_path", type=str, help="path to source folder to be generated.", required=True)
-parser.add_argument("--header_folder_path", type=str, help="path to header folder to be generated.", required=True)
-parser.add_argument("--output_file_name", type=str, help="Required output file name", required=True)
-# Namespaces
-parser.add_argument("--namespaces", action='append', default=[])
-# License template
-parser.add_argument("--license_template", type=str, help="Header template file",
-                    default="header_template.txt")
+parser.add_argument(
+    "--labels_file",
+    type=str,
+    help="Path to the label text file",
+    required=True
+)
 
-args = parser.parse_args()
+# Output file to be generated
+parser.add_argument(
+    "--source_folder_path",
+    type=str,
+    help="path to source folder to be generated.",
+    required=True
+)
+
+parser.add_argument(
+    "--header_folder_path",
+    type=str,
+    help="path to header folder to be generated.",
+    required=True
+)
+
+parser.add_argument(
+    "--output_file_name",
+    type=str,
+    help="Required output file name",
+    required=True
+)
+
+# Namespaces
+parser.add_argument(
+    "--namespaces",
+    action='append',
+    default=[]
+)
+
+# License template
+parser.add_argument(
+    "--license_template",
+    type=str,
+    help="Header template file",
+    default="header_template.txt"
+)
+
+parsed_args = parser.parse_args()
 
 env = Environment(loader=FileSystemLoader(Path(__file__).parent / 'templates'),
                   trim_blocks=True,
                   lstrip_blocks=True)
 
 
+# pylint: enable=duplicate-code
 def main(args):
+    """
+    Generate labels .cpp
+    @param args:    Parsed args
+    """
     # Get the labels from text file
-    with open(args.labels_file, "r") as f:
+    with open(args.labels_file, "r", encoding="utf8") as f:
         labels = f.read().splitlines()
 
     # No labels?
     if len(labels) == 0:
-        raise Exception(f"no labels found in {args.label_file}")
+        raise ValueError(f"no labels found in {args.label_file}")
 
-    header_template = env.get_template(args.license_template)
-    hdr = header_template.render(script_name=Path(__file__).name,
-                                 gen_time=datetime.datetime.now(),
-                                 file_name=Path(args.labels_file).name,
-                                 year=datetime.datetime.now().year)
+    hdr = GenUtils.gen_header(env, args.license_template, Path(args.labels_file).name)
 
     hpp_filename = Path(args.header_folder_path) / (args.output_file_name + ".hpp")
     env.get_template('Labels.hpp.template').stream(common_template_header=hdr,
@@ -78,4 +114,4 @@
 
 
 if __name__ == '__main__':
-    main(args)
+    main(parsed_args)