From ff27ed1de65ea11eedbc304464a04e57b004d2bb Mon Sep 17 00:00:00 2001 From: Maxime Desroches Date: Fri, 8 Aug 2025 23:59:53 -0700 Subject: [PATCH] better --- selfdrive/ui/installer/installer.cc | 8 ++++++-- system/ui/setup.py | 17 ++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/selfdrive/ui/installer/installer.cc b/selfdrive/ui/installer/installer.cc index 7326e089ab..96089fffa7 100644 --- a/selfdrive/ui/installer/installer.cc +++ b/selfdrive/ui/installer/installer.cc @@ -25,6 +25,7 @@ const std::string BRANCH_STR = get_str(BRANCH "? #define CONTINUE_PATH "/data/continue.sh" const std::string CACHE_PATH = "/data/openpilot.cache"; +const std::string NO_FETCH_FLAG = "/tmp/installer_no_fetch"; #define INSTALL_PATH "/data/openpilot" #define TMP_INSTALL_PATH "/data/tmppilot" @@ -86,8 +87,11 @@ int cachedFetch(const std::string &cache) { run(util::string_format("cd %s && git remote set-branches --add origin %s", TMP_INSTALL_PATH, BRANCH_STR.c_str()).c_str()); renderProgress(10); - - return executeGitCommand(util::string_format("cd %s && git fetch --progress origin %s 2>&1", TMP_INSTALL_PATH, BRANCH_STR.c_str())); + if (util::file_exists(NO_FETCH_FLAG)) { + return 0; + } else { + return executeGitCommand(util::string_format("cd %s && git fetch --progress origin %s 2>&1", TMP_INSTALL_PATH, BRANCH_STR.c_str())); + } } int executeGitCommand(const std::string &cmd) { diff --git a/system/ui/setup.py b/system/ui/setup.py index e4d917a1a7..cbee5facb5 100755 --- a/system/ui/setup.py +++ b/system/ui/setup.py @@ -6,6 +6,7 @@ import time import urllib.request from urllib.parse import urlparse from enum import IntEnum +from pathlib import Path import shutil import pyray as rl @@ -34,9 +35,10 @@ USER_AGENT = f"AGNOSSetup-{HARDWARE.get_os_version()}" OPENPILOT_CACHE_PATH = "/data/openpilot.cache" -INSTALLER_SOURCE_PATH = "/usr/comma/installer" -INSTALLER_DESTINATION_PATH = "/tmp/installer" -INSTALLER_URL_PATH = "/tmp/installer_url" +INSTALLER_SOURCE = "/usr/comma/installer" +INSTALLER_DESTINATION = "/tmp/installer" +INSTALLER_URL = "/tmp/installer_url" +INSTALLER_NO_FETCH_FLAG = "/tmp/installer_no_fetch" class SetupState(IntEnum): @@ -310,9 +312,10 @@ class Setup(Widget): def use_openpilot(self): if os.path.isdir(OPENPILOT_CACHE_PATH): - shutil.copyfile(INSTALLER_SOURCE_PATH, INSTALLER_DESTINATION_PATH) + shutil.copyfile(INSTALLER_SOURCE, INSTALLER_DESTINATION) self.download_url = OPENPILOT_URL self.prepare_installer() + Path(INSTALLER_NO_FETCH_FLAG).touch() gui_app.request_close() else: self.state = SetupState.NETWORK_SETUP @@ -366,7 +369,7 @@ class Setup(Widget): self.download_failed(self.download_url, "No custom software found at this URL.") return - os.rename(tmpfile, INSTALLER_DESTINATION_PATH) + os.rename(tmpfile, INSTALLER_DESTINATION) self.prepare_installer() gui_app.request_close() @@ -380,8 +383,8 @@ class Setup(Widget): self.state = SetupState.DOWNLOAD_FAILED def prepare_installer(self): - os.chmod(INSTALLER_DESTINATION_PATH, 0o755) - with open(INSTALLER_URL_PATH, "w") as f: + os.chmod(INSTALLER_DESTINATION, 0o755) + with open(INSTALLER_URL, "w") as f: f.write(self.download_url) def main():