Download codex-rs/cli/src/doctor/runtime.rs from SaylorTwift/codex: direct link, hf CLI and curl.
- Browser
- Download file 5.28 kB
-
https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/cli/src/doctor/runtime.rs
- Command line
-
hf download hf://SaylorTwift/codex/codex-rs/cli/src/doctor/runtime.rs
-
curl -L -o runtime.rs https://huggingface.co/SaylorTwift/codex/resolve/main/codex-rs/cli/src/doctor/runtime.rs
5.28 kB
| //! Captures how this Codex process was launched. | |
| //! | |
| //! Runtime diagnostics answer provenance questions that are hard to infer from | |
| //! user reports: which binary is running, which install channel it resembles, | |
| //! which platform it targets, and whether the search command comes from bundled | |
| //! package files or from PATH. | |
| use std::env; | |
| use codex_install_context::InstallContext; | |
| use codex_install_context::InstallMethod; | |
| use super::CheckStatus; | |
| use super::DoctorCheck; | |
| use super::describe_install_context; | |
| use super::doctor_install_context; | |
| use super::push_path_detail; | |
| /// Builds the process provenance row for the current Codex executable. | |
| /// | |
| /// This check is informational and should not fail on its own; inconsistent | |
| /// install state is reported by the installation and update checks instead. | |
| pub(super) fn runtime_check() -> DoctorCheck { | |
| let current_exe = env::current_exe().ok(); | |
| let install_context = doctor_install_context(current_exe.as_deref()); | |
| let os = env::consts::OS; | |
| let arch = env::consts::ARCH; | |
| let platform = format!("{os}-{arch}"); | |
| let install_method = install_method_name(&install_context); | |
| let mut details = vec![ | |
| format!("version: {}", env!("CARGO_PKG_VERSION")), | |
| format!("platform: {platform}"), | |
| format!( | |
| "install method: {}", | |
| describe_install_context(&install_context) | |
| ), | |
| format!("commit: {}", build_commit()), | |
| ]; | |
| push_path_detail(&mut details, "current executable", current_exe.as_deref()); | |
| DoctorCheck::new( | |
| "runtime.provenance", | |
| "runtime", | |
| CheckStatus::Ok, | |
| format!("running {install_method} on {platform}"), | |
| ) | |
| .details(details) | |
| } | |
| /// Inspects the search command selected by the install context without executing it. | |
| /// | |
| /// Package-layout installs should point at a bundled ripgrep binary, while local | |
| /// installs without that layout usually resolve rg from PATH. A warning here | |
| /// means features that depend on file search may degrade even when the CLI | |
| /// launches. | |
| pub(super) fn search_check() -> DoctorCheck { | |
| let current_exe = env::current_exe().ok(); | |
| let install_context = doctor_install_context(current_exe.as_deref()); | |
| let rg_command = install_context.rg_command(); | |
| let provider = search_provider(&install_context); | |
| let mut details = vec![ | |
| format!("search command: {}", rg_command.display()), | |
| format!("search provider: {provider}"), | |
| ]; | |
| let status = if rg_command.components().count() > 1 { | |
| match std::fs::metadata(&rg_command) { | |
| Ok(metadata) if metadata.is_file() => { | |
| details.push("search command readiness: file exists".to_string()); | |
| CheckStatus::Ok | |
| } | |
| Ok(_) => { | |
| details.push("search command readiness: path is not a file".to_string()); | |
| CheckStatus::Warning | |
| } | |
| Err(err) => { | |
| details.push(format!("search command readiness: {err}")); | |
| CheckStatus::Warning | |
| } | |
| } | |
| } else { | |
| match which::which(&rg_command) { | |
| Ok(path) => { | |
| details.push(format!("search command path: {}", path.display())); | |
| details.push("search command readiness: found; execution not verified".to_string()); | |
| CheckStatus::Ok | |
| } | |
| Err(err) => { | |
| details.push(format!("search command readiness: {err}")); | |
| CheckStatus::Warning | |
| } | |
| } | |
| }; | |
| let summary = match status { | |
| CheckStatus::Ok => format!("search command found ({provider}); execution not verified"), | |
| CheckStatus::Warning => "search command could not be verified".to_string(), | |
| CheckStatus::Fail => unreachable!(), | |
| }; | |
| let mut check = DoctorCheck::new("runtime.search", "search", status, summary).details(details); | |
| if status != CheckStatus::Ok { | |
| check = check.remediation("Install ripgrep or repair the bundled Codex package."); | |
| } | |
| check | |
| } | |
| fn install_method_name(context: &InstallContext) -> &'static str { | |
| match &context.method { | |
| InstallMethod::Standalone { .. } => "standalone", | |
| InstallMethod::Npm => "npm", | |
| InstallMethod::Bun => "bun", | |
| InstallMethod::VitePlus => "vite+", | |
| InstallMethod::Pnpm => "pnpm", | |
| InstallMethod::Brew => "brew", | |
| InstallMethod::Other => "local build", | |
| } | |
| } | |
| fn search_provider(context: &InstallContext) -> &'static str { | |
| let rg_command = context.rg_command(); | |
| let from_package_layout = context | |
| .package_layout | |
| .as_ref() | |
| .and_then(|package_layout| package_layout.path_dir.as_ref()) | |
| .is_some_and(|path_dir| rg_command.starts_with(path_dir)); | |
| let from_legacy_standalone = matches!( | |
| &context.method, | |
| InstallMethod::Standalone { | |
| resources_dir: Some(resources_dir), | |
| .. | |
| } if rg_command.starts_with(resources_dir) | |
| ); | |
| if from_package_layout || from_legacy_standalone { | |
| "bundled" | |
| } else { | |
| "system" | |
| } | |
| } | |
| fn build_commit() -> &'static str { | |
| option_env!("CODEX_BUILD_COMMIT") | |
| .or(option_env!("GIT_COMMIT")) | |
| .unwrap_or("unknown") | |
| } | |