Improve error handling and logging for map generation process
This commit is contained in:
@@ -457,9 +457,15 @@ async fn generate_map(
|
|||||||
cmd.arg(arg);
|
cmd.arg(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut child = cmd
|
let mut child = match cmd.spawn() {
|
||||||
.spawn()
|
Ok(child) => child,
|
||||||
.map_err(|e| format!("Failed to start generator: {e}"))?;
|
Err(e) => {
|
||||||
|
write_log_line(&mut log_file, format!("result: spawn_failed: {e}"));
|
||||||
|
return Err(format!(
|
||||||
|
"Failed to start generator. Log: {log_path_display}\n{e}"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
};
|
||||||
write_log_line(&mut log_file, format!("pid: {}", child.id()));
|
write_log_line(&mut log_file, format!("pid: {}", child.id()));
|
||||||
write_log_line(&mut log_file, "");
|
write_log_line(&mut log_file, "");
|
||||||
write_log_line(&mut log_file, "stdout:");
|
write_log_line(&mut log_file, "stdout:");
|
||||||
@@ -536,15 +542,22 @@ async fn generate_map(
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
let path_line =
|
let path_line = match last_path {
|
||||||
last_path.ok_or_else(|| "Generator did not return a path".to_string())?;
|
Some(path) => path,
|
||||||
|
None => {
|
||||||
|
write_log_line(&mut log_file, "result: missing_output_path");
|
||||||
|
return Err(format!(
|
||||||
|
"Generator did not return a path. Log: {log_path_display}"
|
||||||
|
));
|
||||||
|
}
|
||||||
|
};
|
||||||
let path = PathBuf::from(path_line.trim());
|
let path = PathBuf::from(path_line.trim());
|
||||||
let resolved = if path.is_absolute() {
|
let resolved = if path.is_absolute() {
|
||||||
path
|
path
|
||||||
} else {
|
} else {
|
||||||
out_dir.join(path)
|
out_dir.join(path)
|
||||||
};
|
};
|
||||||
write_log_line(&mut log_file, format!("result: success"));
|
write_log_line(&mut log_file, "result: success");
|
||||||
write_log_line(
|
write_log_line(
|
||||||
&mut log_file,
|
&mut log_file,
|
||||||
format!("output_path: {}", resolved.to_string_lossy()),
|
format!("output_path: {}", resolved.to_string_lossy()),
|
||||||
|
|||||||
Reference in New Issue
Block a user