update.scons 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. from SCons.Errors import StopError
  2. Import("core_env")
  3. update_env = core_env.Clone(
  4. toolpath=[core_env["FBT_SCRIPT_DIR"].Dir("fbt_tools")],
  5. tools=["python3"],
  6. )
  7. print("Updating SDK...")
  8. ufbt_state = update_env["UFBT_STATE"]
  9. update_args = [
  10. "--ufbt-dir",
  11. f'"{update_env["UFBT_STATE_DIR"]}"',
  12. ]
  13. if branch_name := GetOption("sdk_branch"):
  14. update_args.extend(["--branch", branch_name])
  15. elif channel_name := GetOption("sdk_channel"):
  16. update_args.extend(["--channel", channel_name])
  17. elif branch_name := ufbt_state.get("branch", None):
  18. update_args.extend(["--branch", branch_name])
  19. elif channel_name := ufbt_state.get("channel", None):
  20. update_args.extend(["--channel", channel_name])
  21. else:
  22. raise StopError("No branch or channel specified for SDK update")
  23. if hw_target := GetOption("sdk_target"):
  24. update_args.extend(["--hw-target", hw_target])
  25. else:
  26. update_args.extend(["--hw-target", ufbt_state["hw_target"]])
  27. update_env.Replace(UPDATE_ARGS=update_args)
  28. result = update_env.Execute(
  29. update_env.subst('$PYTHON3 "$UFBT_BOOTSTRAP_SCRIPT" $UPDATE_ARGS'),
  30. )
  31. Exit(result)