pull/35960/head
Maxime Desroches 1 week ago
parent 3ae9a8051b
commit ff27ed1de6
  1. 8
      selfdrive/ui/installer/installer.cc
  2. 17
      system/ui/setup.py

@ -25,6 +25,7 @@ const std::string BRANCH_STR = get_str(BRANCH "?
#define CONTINUE_PATH "/data/continue.sh" #define CONTINUE_PATH "/data/continue.sh"
const std::string CACHE_PATH = "/data/openpilot.cache"; const std::string CACHE_PATH = "/data/openpilot.cache";
const std::string NO_FETCH_FLAG = "/tmp/installer_no_fetch";
#define INSTALL_PATH "/data/openpilot" #define INSTALL_PATH "/data/openpilot"
#define TMP_INSTALL_PATH "/data/tmppilot" #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()); run(util::string_format("cd %s && git remote set-branches --add origin %s", TMP_INSTALL_PATH, BRANCH_STR.c_str()).c_str());
renderProgress(10); renderProgress(10);
if (util::file_exists(NO_FETCH_FLAG)) {
return executeGitCommand(util::string_format("cd %s && git fetch --progress origin %s 2>&1", TMP_INSTALL_PATH, BRANCH_STR.c_str())); 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) { int executeGitCommand(const std::string &cmd) {

@ -6,6 +6,7 @@ import time
import urllib.request import urllib.request
from urllib.parse import urlparse from urllib.parse import urlparse
from enum import IntEnum from enum import IntEnum
from pathlib import Path
import shutil import shutil
import pyray as rl import pyray as rl
@ -34,9 +35,10 @@ USER_AGENT = f"AGNOSSetup-{HARDWARE.get_os_version()}"
OPENPILOT_CACHE_PATH = "/data/openpilot.cache" OPENPILOT_CACHE_PATH = "/data/openpilot.cache"
INSTALLER_SOURCE_PATH = "/usr/comma/installer" INSTALLER_SOURCE = "/usr/comma/installer"
INSTALLER_DESTINATION_PATH = "/tmp/installer" INSTALLER_DESTINATION = "/tmp/installer"
INSTALLER_URL_PATH = "/tmp/installer_url" INSTALLER_URL = "/tmp/installer_url"
INSTALLER_NO_FETCH_FLAG = "/tmp/installer_no_fetch"
class SetupState(IntEnum): class SetupState(IntEnum):
@ -310,9 +312,10 @@ class Setup(Widget):
def use_openpilot(self): def use_openpilot(self):
if os.path.isdir(OPENPILOT_CACHE_PATH): 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.download_url = OPENPILOT_URL
self.prepare_installer() self.prepare_installer()
Path(INSTALLER_NO_FETCH_FLAG).touch()
gui_app.request_close() gui_app.request_close()
else: else:
self.state = SetupState.NETWORK_SETUP 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.") self.download_failed(self.download_url, "No custom software found at this URL.")
return return
os.rename(tmpfile, INSTALLER_DESTINATION_PATH) os.rename(tmpfile, INSTALLER_DESTINATION)
self.prepare_installer() self.prepare_installer()
gui_app.request_close() gui_app.request_close()
@ -380,8 +383,8 @@ class Setup(Widget):
self.state = SetupState.DOWNLOAD_FAILED self.state = SetupState.DOWNLOAD_FAILED
def prepare_installer(self): def prepare_installer(self):
os.chmod(INSTALLER_DESTINATION_PATH, 0o755) os.chmod(INSTALLER_DESTINATION, 0o755)
with open(INSTALLER_URL_PATH, "w") as f: with open(INSTALLER_URL, "w") as f:
f.write(self.download_url) f.write(self.download_url)
def main(): def main():

Loading…
Cancel
Save