Skip to content

Commit 6e77f4f

Browse files
committed
🚧 installer: skip version check on server error
1 parent 97f5f8a commit 6e77f4f

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

‎src/cli.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::ui::{MessageType, UI};
22
use crate::{dns, tweak, utils};
33

4-
use clap::{Args, Parser, Subcommand, ValueEnum};
4+
use clap::{Args, Parser, Subcommand};
55

66
pub struct CLI;
77

‎src/installer.rs‎

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::gui::GUI;
22
use crate::ui::{MessageType, UI};
3-
use crate::{check_regular_file, fl, utils, G_HELLO_WINDOW};
3+
use crate::{check_regular_file, fl, G_HELLO_WINDOW};
44

55
use std::fs;
66
use std::io::{BufRead, BufReader};
@@ -32,18 +32,22 @@ fn outdated_version_check(ui: &GUI, message: String) -> bool {
3232
}
3333

3434
let response = reqwest::blocking::get("https://cachyos.org/versions.json");
35-
3635
if response.is_err() {
3736
ui.show_message(MessageType::Warning, &fl!("offline-error"), message.clone());
3837
return false;
3938
}
4039

41-
let versions = response.unwrap().json::<Versions>().unwrap();
40+
// silently continue in case of server error
41+
let versions = response.map(|x| x.json::<Versions>().unwrap());
42+
if let Err(vers_err) = versions {
43+
error!("Failed to fetch versions.json: {vers_err}");
44+
return true;
45+
}
4246

4347
let latest_version = if edition_tag.contains("desktop") {
44-
versions.desktop_iso_version
48+
versions.unwrap().desktop_iso_version
4549
} else {
46-
versions.handheld_iso_version
50+
versions.unwrap().handheld_iso_version
4751
}
4852
.trim()
4953
.to_owned();
@@ -99,11 +103,9 @@ fn connectivity_check(ui: &GUI, message: String) -> bool {
99103
];
100104
for target in targets {
101105
let ping_result = Exec::cmd("/sbin/ping").args(&["-c", "1", "-W", "3", target]).join();
102-
if let Ok(status) = ping_result {
103-
if status.success() {
104-
info!("Connectivity confirmed via ping to {target}");
105-
return true;
106-
}
106+
if ping_result.map(|x| x.success()).is_ok() {
107+
info!("Connectivity confirmed via ping to {target}");
108+
return true;
107109
}
108110
}
109111

0 commit comments

Comments
 (0)