|
|
|
@ -5,6 +5,7 @@ |
|
|
|
|
|
|
|
|
|
#include "common/swaglog.h" |
|
|
|
|
#include "common/util.h" |
|
|
|
|
#include "system/hardware/hw.h" |
|
|
|
|
#include "third_party/raylib/include/raylib.h" |
|
|
|
|
|
|
|
|
|
int freshClone(); |
|
|
|
@ -38,6 +39,27 @@ extern const uint8_t inter_ttf_end[] asm("_binary_selfdrive_ui_installer_inter_a |
|
|
|
|
|
|
|
|
|
Font font; |
|
|
|
|
|
|
|
|
|
std::vector<std::string> tici_prebuilt_branches = {"release3", "release-tizi", "release3-staging", "nightly", "nightly-dev"}; |
|
|
|
|
std::string migrated_branch; |
|
|
|
|
|
|
|
|
|
void branchMigration() { |
|
|
|
|
migrated_branch = BRANCH_STR; |
|
|
|
|
cereal::InitData::DeviceType device_type = Hardware::get_device_type(); |
|
|
|
|
if (device_type == cereal::InitData::DeviceType::TICI) { |
|
|
|
|
if (std::find(tici_prebuilt_branches.begin(), tici_prebuilt_branches.end(), BRANCH_STR) != tici_prebuilt_branches.end()) { |
|
|
|
|
migrated_branch = "release-tici"; |
|
|
|
|
} else if (BRANCH_STR == "master") { |
|
|
|
|
migrated_branch = "master-tici"; |
|
|
|
|
} |
|
|
|
|
} else if (device_type == cereal::InitData::DeviceType::TIZI) { |
|
|
|
|
if (BRANCH_STR == "release3") { |
|
|
|
|
migrated_branch = "release-tizi"; |
|
|
|
|
} else if (BRANCH_STR == "release3-staging") { |
|
|
|
|
migrated_branch = "release-tizi-staging"; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void run(const char* cmd) { |
|
|
|
|
int err = std::system(cmd); |
|
|
|
|
assert(err == 0); |
|
|
|
@ -87,7 +109,7 @@ int doInstall() { |
|
|
|
|
int freshClone() { |
|
|
|
|
LOGD("Doing fresh clone"); |
|
|
|
|
std::string cmd = util::string_format("git clone --progress %s -b %s --depth=1 --recurse-submodules %s 2>&1", |
|
|
|
|
GIT_URL.c_str(), BRANCH_STR.c_str(), TMP_INSTALL_PATH); |
|
|
|
|
GIT_URL.c_str(), migrated_branch.c_str(), TMP_INSTALL_PATH); |
|
|
|
|
return executeGitCommand(cmd); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -95,11 +117,11 @@ int cachedFetch(const std::string &cache) { |
|
|
|
|
LOGD("Fetching with cache: %s", cache.c_str()); |
|
|
|
|
|
|
|
|
|
run(util::string_format("cp -rp %s %s", cache.c_str(), TMP_INSTALL_PATH).c_str()); |
|
|
|
|
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, migrated_branch.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())); |
|
|
|
|
return executeGitCommand(util::string_format("cd %s && git fetch --progress origin %s 2>&1", TMP_INSTALL_PATH, migrated_branch.c_str())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int executeGitCommand(const std::string &cmd) { |
|
|
|
@ -142,8 +164,8 @@ void cloneFinished(int exitCode) { |
|
|
|
|
// ensure correct branch is checked out
|
|
|
|
|
int err = chdir(TMP_INSTALL_PATH); |
|
|
|
|
assert(err == 0); |
|
|
|
|
run(("git checkout " + BRANCH_STR).c_str()); |
|
|
|
|
run(("git reset --hard origin/" + BRANCH_STR).c_str()); |
|
|
|
|
run(("git checkout " + migrated_branch).c_str()); |
|
|
|
|
run(("git reset --hard origin/" + migrated_branch).c_str()); |
|
|
|
|
run("git submodule update --init"); |
|
|
|
|
|
|
|
|
|
// move into place
|
|
|
|
@ -193,6 +215,8 @@ int main(int argc, char *argv[]) { |
|
|
|
|
font = LoadFontFromMemory(".ttf", inter_ttf, inter_ttf_end - inter_ttf, FONT_SIZE, NULL, 0); |
|
|
|
|
SetTextureFilter(font.texture, TEXTURE_FILTER_BILINEAR); |
|
|
|
|
|
|
|
|
|
branchMigration(); |
|
|
|
|
|
|
|
|
|
if (util::file_exists(CONTINUE_PATH)) { |
|
|
|
|
finishInstall(); |
|
|
|
|
} else { |
|
|
|
|