From 4903232c4258a7b68fb19ffbd154db1c6e28a1c7 Mon Sep 17 00:00:00 2001 From: Guillaume Endignoux Date: Tue, 28 Apr 2020 13:51:03 +0200 Subject: [PATCH 1/7] Add a --verbose-build option to the deploy script. --- deploy.py | 42 +++++++++++++++++++++++++++++++++++------- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/deploy.py b/deploy.py index bb1c056..c198ba1 100755 --- a/deploy.py +++ b/deploy.py @@ -269,6 +269,19 @@ class OpenSKInstaller: port=None, ) + def checked_command(self, cmd, env=None, cwd=None): + stdout = None if self.args.verbose_build else subprocess.DEVNULL + try: + subprocess.run( + cmd, + stdout=stdout, + timeout=None, + check=True, + env=env, + cwd=cwd) + except subprocess.CalledProcessError as e: + fatal("Failed to execute {}: {}".format(cmd[0], str(e))) + def checked_command_output(self, cmd, env=None, cwd=None): cmd_output = "" try: @@ -300,9 +313,9 @@ class OpenSKInstaller: target_toolchain[1] in current_version): info("Updating rust toolchain to {}".format("-".join(target_toolchain))) # Need to update - self.checked_command_output( + self.checked_command( ["rustup", "install", target_toolchain_fullstring]) - self.checked_command_output( + self.checked_command( ["rustup", "target", "add", SUPPORTED_BOARDS[self.args.board].arch]) info("Rust toolchain up-to-date") @@ -312,7 +325,11 @@ class OpenSKInstaller: out_directory = os.path.join("third_party", "tock", "target", props.arch, "release") os.makedirs(out_directory, exist_ok=True) - self.checked_command_output(["make"], cwd=props.path) + + env = os.environ.copy() + if self.args.verbose_build: + env["V"] = "1" + self.checked_command(["make"], cwd=props.path, env=env) def build_example(self): info("Building example {}".format(self.args.application)) @@ -347,7 +364,9 @@ class OpenSKInstaller: ] if is_example: command.extend(["--example", self.args.application]) - self.checked_command_output(command, env=env) + if self.args.verbose_build: + command.extend(["--verbose"]) + self.checked_command(command, env=env) app_path = os.path.join("target", props.arch, "release") if is_example: app_path = os.path.join(app_path, "examples") @@ -383,6 +402,8 @@ class OpenSKInstaller: elf2tab_args = [ "elf2tab", package_parameter, self.args.application, "-o", tab_filename ] + if self.args.verbose_build: + elf2tab_args.extend(["--verbose"]) for arch, app_file in binaries.items(): dest_file = os.path.join(self.tab_folder, "{}.elf".format(arch)) shutil.copyfile(app_file, dest_file) @@ -392,7 +413,7 @@ class OpenSKInstaller: "--stack={}".format(STACK_SIZE), "--app-heap={}".format(APP_HEAP_SIZE), "--kernel-heap=1024", "--protected-region-size=64" ]) - self.checked_command_output(elf2tab_args) + self.checked_command(elf2tab_args) def install_tab_file(self, tab_filename): assert self.args.application @@ -616,14 +637,14 @@ class OpenSKInstaller: if self.args.programmer == "pyocd": info("Flashing HEX file") - self.checked_command_output([ + self.checked_command([ "pyocd", "flash", "--target={}".format(board_props.pyocd_target), "--format=hex", "--erase=auto", dest_file ]) if self.args.programmer == "nordicdfu": info("Creating DFU package") dfu_pkg_file = "target/{}_dfu.zip".format(self.args.board) - self.checked_command_output([ + self.checked_command([ "nrfutil", "pkg", "generate", "--hw-version=52", "--sd-req=0", "--application-version=1", "--application={}".format(dest_file), dfu_pkg_file @@ -711,6 +732,13 @@ if __name__ == "__main__": help=("Only compiles and flash the application/example. " "Otherwise TockOS will also be bundled and flashed."), ) + main_parser.add_argument( + "--verbose-build", + action="store_true", + default=False, + dest="verbose_build", + help=("Build everything in verbose mode."), + ) main_parser.add_argument( "--panic-console", From ec2c3fb201ae46c8f90b851938b04f5dc68c7a79 Mon Sep 17 00:00:00 2001 From: Guillaume Endignoux Date: Tue, 28 Apr 2020 13:56:17 +0200 Subject: [PATCH 2/7] Formatting. --- deploy.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/deploy.py b/deploy.py index c198ba1..79a54b1 100755 --- a/deploy.py +++ b/deploy.py @@ -313,8 +313,7 @@ class OpenSKInstaller: target_toolchain[1] in current_version): info("Updating rust toolchain to {}".format("-".join(target_toolchain))) # Need to update - self.checked_command( - ["rustup", "install", target_toolchain_fullstring]) + self.checked_command(["rustup", "install", target_toolchain_fullstring]) self.checked_command( ["rustup", "target", "add", SUPPORTED_BOARDS[self.args.board].arch]) info("Rust toolchain up-to-date") From 463a289dd0031e22767c46bc16f6fd95c64b08f3 Mon Sep 17 00:00:00 2001 From: Guillaume Endignoux Date: Tue, 28 Apr 2020 14:02:24 +0200 Subject: [PATCH 3/7] Verbose rustup. --- deploy.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/deploy.py b/deploy.py index 79a54b1..b782baa 100755 --- a/deploy.py +++ b/deploy.py @@ -313,9 +313,17 @@ class OpenSKInstaller: target_toolchain[1] in current_version): info("Updating rust toolchain to {}".format("-".join(target_toolchain))) # Need to update - self.checked_command(["rustup", "install", target_toolchain_fullstring]) - self.checked_command( - ["rustup", "target", "add", SUPPORTED_BOARDS[self.args.board].arch]) + rustup_install = ["rustup"] + if self.args.verbose_build: + rustup_install.extend(["--verbose"]) + rustup_install.extend(["install", target_toolchain_fullstring]) + self.checked_command(rustup_install) + + rustup_target = ["rustup"] + if self.args.verbose_build: + rustup_target.extend(["--verbose"]) + rustup_target.extend(["target", "add", SUPPORTED_BOARDS[self.args.board].arch]) + self.checked_command(rustup_target) info("Rust toolchain up-to-date") def build_tockos(self): From 7d47de2b3b4169b3b1754cb95c62c81a5cad918d Mon Sep 17 00:00:00 2001 From: Guillaume Endignoux Date: Tue, 28 Apr 2020 14:05:36 +0200 Subject: [PATCH 4/7] Formatting. --- deploy.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/deploy.py b/deploy.py index b782baa..3bd8a2f 100755 --- a/deploy.py +++ b/deploy.py @@ -273,12 +273,7 @@ class OpenSKInstaller: stdout = None if self.args.verbose_build else subprocess.DEVNULL try: subprocess.run( - cmd, - stdout=stdout, - timeout=None, - check=True, - env=env, - cwd=cwd) + cmd, stdout=stdout, timeout=None, check=True, env=env, cwd=cwd) except subprocess.CalledProcessError as e: fatal("Failed to execute {}: {}".format(cmd[0], str(e))) @@ -322,7 +317,8 @@ class OpenSKInstaller: rustup_target = ["rustup"] if self.args.verbose_build: rustup_target.extend(["--verbose"]) - rustup_target.extend(["target", "add", SUPPORTED_BOARDS[self.args.board].arch]) + rustup_target.extend( + ["target", "add", SUPPORTED_BOARDS[self.args.board].arch]) self.checked_command(rustup_target) info("Rust toolchain up-to-date") From dc088479db30a8612a10e24349713758079af3c8 Mon Sep 17 00:00:00 2001 From: Guillaume Endignoux Date: Tue, 28 Apr 2020 17:57:10 +0200 Subject: [PATCH 5/7] Fix review comments. --- deploy.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/deploy.py b/deploy.py index 3bd8a2f..077a385 100755 --- a/deploy.py +++ b/deploy.py @@ -310,13 +310,13 @@ class OpenSKInstaller: # Need to update rustup_install = ["rustup"] if self.args.verbose_build: - rustup_install.extend(["--verbose"]) + rustup_install.extend("--verbose") rustup_install.extend(["install", target_toolchain_fullstring]) self.checked_command(rustup_install) rustup_target = ["rustup"] if self.args.verbose_build: - rustup_target.extend(["--verbose"]) + rustup_target.extend("--verbose") rustup_target.extend( ["target", "add", SUPPORTED_BOARDS[self.args.board].arch]) self.checked_command(rustup_target) @@ -368,7 +368,7 @@ class OpenSKInstaller: if is_example: command.extend(["--example", self.args.application]) if self.args.verbose_build: - command.extend(["--verbose"]) + command.extend("--verbose") self.checked_command(command, env=env) app_path = os.path.join("target", props.arch, "release") if is_example: @@ -406,7 +406,7 @@ class OpenSKInstaller: "elf2tab", package_parameter, self.args.application, "-o", tab_filename ] if self.args.verbose_build: - elf2tab_args.extend(["--verbose"]) + elf2tab_args.extend("--verbose") for arch, app_file in binaries.items(): dest_file = os.path.join(self.tab_folder, "{}.elf".format(arch)) shutil.copyfile(app_file, dest_file) @@ -698,7 +698,7 @@ if __name__ == "__main__": choices=("boards", "programmers"), default=None, dest="listing", - help=("List supported boards or programmers, 1 per line and then exit."), + help="List supported boards or programmers, 1 per line and then exit.", ) action_group.add_argument( "--board", @@ -740,7 +740,7 @@ if __name__ == "__main__": action="store_true", default=False, dest="verbose_build", - help=("Build everything in verbose mode."), + help="Build everything in verbose mode.", ) main_parser.add_argument( From e838356f3bd67baacf9ec6df7b06c4f88ad90903 Mon Sep 17 00:00:00 2001 From: Guillaume Endignoux Date: Tue, 28 Apr 2020 18:00:36 +0200 Subject: [PATCH 6/7] Revert review suggestion. No, we don't want to run: Command '['rustup', '-', '-', 'v', 'e', 'r', 'b', 'o', 's', 'e', 'install', 'nightly-2020-02-03']' --- deploy.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy.py b/deploy.py index 077a385..b8ba61c 100755 --- a/deploy.py +++ b/deploy.py @@ -310,13 +310,13 @@ class OpenSKInstaller: # Need to update rustup_install = ["rustup"] if self.args.verbose_build: - rustup_install.extend("--verbose") + rustup_install.extend(["--verbose"]) rustup_install.extend(["install", target_toolchain_fullstring]) self.checked_command(rustup_install) rustup_target = ["rustup"] if self.args.verbose_build: - rustup_target.extend("--verbose") + rustup_target.extend(["--verbose"]) rustup_target.extend( ["target", "add", SUPPORTED_BOARDS[self.args.board].arch]) self.checked_command(rustup_target) @@ -368,7 +368,7 @@ class OpenSKInstaller: if is_example: command.extend(["--example", self.args.application]) if self.args.verbose_build: - command.extend("--verbose") + command.extend(["--verbose"]) self.checked_command(command, env=env) app_path = os.path.join("target", props.arch, "release") if is_example: @@ -406,7 +406,7 @@ class OpenSKInstaller: "elf2tab", package_parameter, self.args.application, "-o", tab_filename ] if self.args.verbose_build: - elf2tab_args.extend("--verbose") + elf2tab_args.extend(["--verbose"]) for arch, app_file in binaries.items(): dest_file = os.path.join(self.tab_folder, "{}.elf".format(arch)) shutil.copyfile(app_file, dest_file) From c780d76613afdf9d0a393b426e782cd3cd88cb9b Mon Sep 17 00:00:00 2001 From: Guillaume Endignoux Date: Tue, 28 Apr 2020 18:04:41 +0200 Subject: [PATCH 7/7] Append. --- deploy.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/deploy.py b/deploy.py index b8ba61c..2848924 100755 --- a/deploy.py +++ b/deploy.py @@ -310,13 +310,13 @@ class OpenSKInstaller: # Need to update rustup_install = ["rustup"] if self.args.verbose_build: - rustup_install.extend(["--verbose"]) + rustup_install.append("--verbose") rustup_install.extend(["install", target_toolchain_fullstring]) self.checked_command(rustup_install) rustup_target = ["rustup"] if self.args.verbose_build: - rustup_target.extend(["--verbose"]) + rustup_target.append("--verbose") rustup_target.extend( ["target", "add", SUPPORTED_BOARDS[self.args.board].arch]) self.checked_command(rustup_target) @@ -368,7 +368,7 @@ class OpenSKInstaller: if is_example: command.extend(["--example", self.args.application]) if self.args.verbose_build: - command.extend(["--verbose"]) + command.append("--verbose") self.checked_command(command, env=env) app_path = os.path.join("target", props.arch, "release") if is_example: @@ -406,7 +406,7 @@ class OpenSKInstaller: "elf2tab", package_parameter, self.args.application, "-o", tab_filename ] if self.args.verbose_build: - elf2tab_args.extend(["--verbose"]) + elf2tab_args.append("--verbose") for arch, app_file in binaries.items(): dest_file = os.path.join(self.tab_folder, "{}.elf".format(arch)) shutil.copyfile(app_file, dest_file)