(pkg_id: &str)
| 66 | } |
| 67 | |
| 68 | fn overlay_unity_meta_skeleton(pkg_id: &str) -> Result<()> { |
| 69 | let sdk = sdk_dir(); |
| 70 | let skeleton_base = sdk.join("unity-meta-skeleton~"); |
| 71 | let skeleton_root = skeleton_base.join(pkg_id); |
| 72 | if !skeleton_root.exists() { |
| 73 | return Ok(()); |
| 74 | } |
| 75 | |
| 76 | let pkg_root = sdk.join("packages").join(pkg_id); |
| 77 | if !pkg_root.exists() { |
| 78 | return Ok(()); |
| 79 | } |
| 80 | |
| 81 | let pkg_root_meta = skeleton_base.join(format!("{pkg_id}.meta")); |
| 82 | if pkg_root_meta.exists() |
| 83 | && let Some(parent) = pkg_root.parent() |
| 84 | { |
| 85 | let pkg_meta_dst = parent.join(format!("{pkg_id}.meta")); |
| 86 | fs::copy(&pkg_root_meta, &pkg_meta_dst)?; |
| 87 | } |
| 88 | |
| 89 | let versioned_dir = match find_only_subdir(&pkg_root) { |
| 90 | Ok(dir) => dir, |
| 91 | Err(err) => { |
| 92 | eprintln!("Skipping Unity meta overlay for {pkg_id}: could not locate restored version dir: {err}"); |
| 93 | return Ok(()); |
| 94 | } |
| 95 | }; |
| 96 | |
| 97 | let version_meta_template = skeleton_root.join("version.meta"); |
| 98 | if version_meta_template.exists() |
| 99 | && let Some(parent) = versioned_dir.parent() |
| 100 | { |
| 101 | let version_name = versioned_dir |
| 102 | .file_name() |
| 103 | .expect("versioned directory should have a file name"); |
| 104 | let version_meta_dst = parent.join(format!("{}.meta", version_name.to_string_lossy())); |
| 105 | fs::copy(&version_meta_template, &version_meta_dst)?; |
| 106 | } |
| 107 | |
| 108 | copy_overlay_dir(&skeleton_root, &versioned_dir) |
| 109 | } |
| 110 | |
| 111 | fn clear_restored_package_dirs(pkg_id: &str) -> Result<()> { |
| 112 | let pkg_root = sdk_dir().join("packages").join(pkg_id); |
no test coverage detected
searching dependent graphs…