fix(ingestion): use lossy conversion when source doesn't produce valid utf8 (#240)

Fixes #233
This commit is contained in:
Alex Pasmantier 2025-01-07 12:41:57 +01:00 committed by GitHub
parent 0624002f35
commit a2a264cc4d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 6 additions and 8 deletions

View File

@ -44,7 +44,7 @@ fn get_raw_aliases(shell: &str) -> Vec<String> {
.arg("alias") .arg("alias")
.output() .output()
.expect("failed to execute process"); .expect("failed to execute process");
let aliases = String::from_utf8(output.stdout).unwrap(); let aliases = String::from_utf8_lossy(&output.stdout);
aliases.lines().map(ToString::to_string).collect() aliases.lines().map(ToString::to_string).collect()
} }

View File

@ -109,7 +109,7 @@ async fn load_candidates(command: String, injector: Injector<String>) {
.output() .output()
.expect("failed to execute process"); .expect("failed to execute process");
let decoded_output = String::from_utf8(output.stdout).unwrap(); let decoded_output = String::from_utf8_lossy(&output.stdout);
debug!("Decoded output: {:?}", decoded_output); debug!("Decoded output: {:?}", decoded_output);
for line in decoded_output.lines().collect::<HashSet<_>>() { for line in decoded_output.lines().collect::<HashSet<_>>() {

View File

@ -160,11 +160,10 @@ pub fn try_preview(
.expect("failed to execute process"); .expect("failed to execute process");
if output.status.success() { if output.status.success() {
let content = String::from_utf8(output.stdout) let content = String::from_utf8_lossy(&output.stdout);
.unwrap_or(String::from("Failed to read output\n"));
let preview = Arc::new(Preview::new( let preview = Arc::new(Preview::new(
entry.name.clone(), entry.name.clone(),
PreviewContent::AnsiText(content), PreviewContent::AnsiText(content.to_string()),
None, None,
false, false,
)); ));
@ -173,11 +172,10 @@ pub fn try_preview(
let mut tp = last_previewed.lock(); let mut tp = last_previewed.lock();
*tp = preview.stale().into(); *tp = preview.stale().into();
} else { } else {
let content = String::from_utf8(output.stderr) let content = String::from_utf8_lossy(&output.stderr);
.unwrap_or(String::from("Failed to read error\n"));
let preview = Arc::new(Preview::new( let preview = Arc::new(Preview::new(
entry.name.clone(), entry.name.clone(),
PreviewContent::AnsiText(content), PreviewContent::AnsiText(content.to_string()),
None, None,
false, false,
)); ));