(install_dir: &Path)
| 848 | } |
| 849 | |
| 850 | fn remove_codex_plugin_skills_dir(install_dir: &Path) -> Result<()> { |
| 851 | let skills_dir = install_dir.join("skills"); |
| 852 | let Ok(metadata) = std::fs::symlink_metadata(&skills_dir) else { |
| 853 | return Ok(()); |
| 854 | }; |
| 855 | if metadata.file_type().is_symlink() || metadata.is_file() { |
| 856 | std::fs::remove_file(&skills_dir).map_err(|e| TraceDecayError::Config { |
| 857 | message: format!("failed to remove {}: {e}", skills_dir.display()), |
| 858 | })?; |
| 859 | } else if metadata.is_dir() { |
| 860 | remove_codex_managed_skill_overlay(install_dir); |
| 861 | remove_codex_plugin_managed_skills(install_dir, &skills_dir)?; |
| 862 | } |
| 863 | Ok(()) |
| 864 | } |
| 865 | |
| 866 | fn remove_codex_managed_skill_overlay(install_dir: &Path) { |
| 867 | std::fs::remove_dir_all(install_dir.join("skills/agent-managed")).ok(); |
no test coverage detected