scripts: updated gen_handles.py to take Zephyr base as argument

The script gen_handles.py was introduce in #32127 but relies on
ZEPHYR_BASE being set in environment.

However, it is not a requirement to set Zephyr base in the users
environment, therefore this is changed to an argument `-z` or
`--zephyr-base` which will be passed from the build system to the
script.

If `-z` or `--zephyr-base` is not provided, the environment will be
checked for a ZEPHYR_BASE setting there.

Signed-off-by: Torsten Rasmussen <Torsten.Rasmussen@nordicsemi.no>
diff --git a/scripts/gen_handles.py b/scripts/gen_handles.py
index ad3395c..3e46c8d 100755
--- a/scripts/gen_handles.py
+++ b/scripts/gen_handles.py
@@ -41,9 +41,6 @@
 if LooseVersion(elftools.__version__) < LooseVersion('0.24'):
     sys.exit("pyelftools is out of date, need version 0.24 or later")
 
-ZEPHYR_BASE = os.getenv("ZEPHYR_BASE")
-sys.path.insert(0, os.path.join(ZEPHYR_BASE, "scripts/dts"))
-
 scr = os.path.basename(sys.argv[0])
 
 def debug(text):
@@ -65,10 +62,24 @@
 
     parser.add_argument("-v", "--verbose", action="store_true",
                         help="Print extra debugging information")
+
+    parser.add_argument("-z", "--zephyr-base",
+                        help="Path to current Zephyr base. If this argument \
+                        is not provided the environment will be checked for \
+                        the ZEPHYR_BASE environment variable.")
+
     args = parser.parse_args()
     if "VERBOSE" in os.environ:
         args.verbose = 1
 
+    ZEPHYR_BASE = args.zephyr_base or os.getenv("ZEPHYR_BASE")
+
+    if ZEPHYR_BASE is None:
+        sys.exit("-z / --zephyr-base not provided. Please provide "
+                 "--zephyr-base or set ZEPHYR_BASE in environment")
+
+    sys.path.insert(0, os.path.join(ZEPHYR_BASE, "scripts/dts"))
+
 
 def symbol_data(elf, sym):
     addr = sym.entry.st_value