about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJakub Beránek <berykubik@gmail.com>2024-03-30 21:21:58 +0100
committerJakub Beránek <berykubik@gmail.com>2024-03-31 12:56:05 +0200
commit8caef4e6c30cd89496ab077e271cd0e9c03fe970 (patch)
tree0a33da5a30ee6717325483a33133f689371a660e
parent63d6ce03b341ba2c42782099dcfae90e3daa5021 (diff)
downloadrust-8caef4e6c30cd89496ab077e271cd0e9c03fe970.tar.gz
rust-8caef4e6c30cd89496ab077e271cd0e9c03fe970.zip
Remove potential `__pycache__` directories from src tarballs
-rw-r--r--src/bootstrap/src/core/build_steps/dist.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs
index 08d05920dc4..ecea62140a2 100644
--- a/src/bootstrap/src/core/build_steps/dist.rs
+++ b/src/bootstrap/src/core/build_steps/dist.rs
@@ -1028,6 +1028,20 @@ impl Step for PlainSourceTarball {
             builder.create(&cargo_config_dir.join("config.toml"), &config);
         }
 
+        // Delete extraneous directories
+        // FIXME: if we're managed by git, we should probably instead ask git if the given path
+        // is managed by it?
+        for entry in walkdir::WalkDir::new(tarball.image_dir())
+            .follow_links(true)
+            .into_iter()
+            .filter_map(|e| e.ok())
+        {
+            if entry.path().is_dir() && entry.path().file_name() == Some(OsStr::new("__pycache__"))
+            {
+                t!(fs::remove_dir_all(entry.path()));
+            }
+        }
+
         tarball.bare()
     }
 }