46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
import argparse
|
|
import subprocess
|
|
import sys
|
|
from typing import List, Tuple
|
|
|
|
|
|
def parse_args() -> Tuple[argparse.Namespace, list[str]]:
|
|
parser = argparse.ArgumentParser(description="Compile wasm")
|
|
parser.add_argument(
|
|
"sketch_dir",
|
|
nargs="?",
|
|
default="examples/wasm",
|
|
help="The directory of the sketch to compile",
|
|
)
|
|
# return parser.parse_args()
|
|
known_args, unknown_args = parser.parse_known_args()
|
|
return known_args, unknown_args
|
|
|
|
|
|
def run_command(cmd_list: List[str]) -> int:
|
|
"""Run a command and return its exit code."""
|
|
cmd_str = subprocess.list2cmdline(cmd_list)
|
|
print(f"Running command: {cmd_str}")
|
|
rtn = subprocess.call(cmd_list)
|
|
if rtn != 0:
|
|
print(f"ERROR: Command {cmd_str} failed with return code {rtn}")
|
|
return rtn
|
|
|
|
|
|
def main() -> int:
|
|
args, unknown_args = parse_args()
|
|
|
|
# First run the build command
|
|
build_cmd = ["fastled", args.sketch_dir, "--build"] + unknown_args
|
|
build_result = run_command(build_cmd)
|
|
|
|
# Then run the compile command
|
|
compile_cmd = ["fastled", args.sketch_dir, "--just-compile"] + unknown_args
|
|
compile_result = run_command(compile_cmd)
|
|
|
|
# Return non-zero if either command failed
|
|
return build_result if build_result != 0 else compile_result
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|