The script argument isn't really a path, so stop assuming that it is one. We still use the shell script name at this point, but there isn't any actual shell script in the system. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
57 lines
1.7 KiB
Python
Executable file
57 lines
1.7 KiB
Python
Executable file
#! /usr/bin/env python3
|
|
|
|
# Copyright (c) 2017 Linaro Limited.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
"""Zephyr flash/debug script
|
|
|
|
This script is a transparent replacement for legacy Zephyr flash and
|
|
debug scripts which have now been removed. It will be refactored over
|
|
time as the rest of the build system is taught to use it.
|
|
"""
|
|
|
|
from os import path
|
|
import sys
|
|
|
|
from runner.core import ZephyrBinaryRunner, get_env_bool_or
|
|
|
|
|
|
# TODO: Stop using environment variables.
|
|
#
|
|
# Migrate the build system so we can use an argparse.ArgumentParser and
|
|
# per-flasher subparsers, so invoking the script becomes something like:
|
|
#
|
|
# python zephyr_flash_debug.py openocd --openocd-bin=/openocd/path ...
|
|
#
|
|
# For now, maintain compatibility.
|
|
def run(shell_script, command, debug):
|
|
try:
|
|
runner = ZephyrBinaryRunner.create_for_shell_script(shell_script,
|
|
command,
|
|
debug)
|
|
except ValueError:
|
|
print('Unrecognized shell script {}'.format(shell_script),
|
|
file=sys.stderr)
|
|
raise
|
|
|
|
runner.run(command)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
commands = {'flash', 'debug', 'debugserver'}
|
|
debug = True
|
|
try:
|
|
debug = get_env_bool_or('VERBOSE', False)
|
|
if len(sys.argv) != 3 or sys.argv[1] not in commands:
|
|
raise ValueError('usage: {} <{}> script-name'.format(
|
|
sys.argv[0], '|'.join(commands)))
|
|
run(sys.argv[2], sys.argv[1], debug)
|
|
except Exception as e:
|
|
if debug:
|
|
raise
|
|
else:
|
|
print('Error: {}'.format(e), file=sys.stderr)
|
|
print('Re-run with VERBOSE=1 for a stack trace.',
|
|
file=sys.stderr)
|
|
sys.exit(1)
|