(event: &Value)
| 1040 | } |
| 1041 | |
| 1042 | fn event_project(event: &Value) -> (String, String) { |
| 1043 | let cwd_root = event_cwd(event).and_then(|cwd| crate::config::discover_project_root(&cwd)); |
| 1044 | let candidates = event_project_candidates(event); |
| 1045 | let resolved = candidates |
| 1046 | .iter() |
| 1047 | .find_map(|candidate| crate::config::discover_project_root(candidate)) |
| 1048 | .or_else(|| candidates.into_iter().next()); |
| 1049 | let project_path = match (cwd_root, resolved) { |
| 1050 | (Some(cwd_root), Some(resolved)) if !paths_equal(&cwd_root, &resolved) => cwd_root, |
| 1051 | (Some(cwd_root), None) => cwd_root, |
| 1052 | (_, Some(resolved)) => resolved, |
| 1053 | _ => return ("unknown".to_string(), "unknown".to_string()), |
| 1054 | }; |
| 1055 | let project = project_path.to_string_lossy().to_string(); |
| 1056 | (project.clone(), project) |
| 1057 | } |
| 1058 | |
| 1059 | fn event_cwd(event: &Value) -> Option<PathBuf> { |
| 1060 | event |
no test coverage detected