From 56fad82d93e16002dec00b00bc2b7726a02bf6ad Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Fri, 4 Jul 2025 23:31:11 +0700 Subject: [PATCH] Make sure we check file presence before attempting to read --- qt/launcher/src/main.rs | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/qt/launcher/src/main.rs b/qt/launcher/src/main.rs index 04f4be807..2f4648f5b 100644 --- a/qt/launcher/src/main.rs +++ b/qt/launcher/src/main.rs @@ -286,10 +286,14 @@ fn main_menu_loop(state: &State) -> Result<()> { println!("\x1B[1mUpdating Anki...\x1B[0m\n"); - let python_version = read_file(&state.user_python_version_path)?; - let python_version_str = String::from_utf8(python_version) - .context("Invalid UTF-8 in .python-version")?; - let python_version_trimmed = python_version_str.trim(); + let python_version_trimmed = if state.user_python_version_path.exists() { + let python_version = read_file(&state.user_python_version_path)?; + let python_version_str = String::from_utf8(python_version) + .context("Invalid UTF-8 in .python-version")?; + Some(python_version_str.trim().to_string()) + } else { + None + }; // `uv sync` does not pull in Python automatically, unlike `uv run`. // This might be system/platform specific and/or a uv bug. @@ -301,8 +305,8 @@ fn main_menu_loop(state: &State) -> Result<()> { .args(["python", "install"]); // Add python version if .python-version file exists - if state.user_python_version_path.exists() { - command.args([python_version_trimmed]); + if let Some(version) = &python_version_trimmed { + command.args([version]); } if let Err(e) = command.ensure_success() { @@ -320,8 +324,8 @@ fn main_menu_loop(state: &State) -> Result<()> { .args(["sync", "--upgrade", "--managed-python"]); // Add python version if .python-version file exists - if state.user_python_version_path.exists() { - command.args(["--python", python_version_trimmed]); + if let Some(version) = &python_version_trimmed { + command.args(["--python", version]); } // Set UV_PRERELEASE=allow if beta mode is enabled