MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / snapshot_files

Function snapshot_files

atomic-cli/tests/provenance_integration_test.rs:76–93  ·  view source on GitHub ↗

Recursively collect every file path under `root` (relative), for a before/after "nothing was written" assertion.

(root: &Path)

Source from the content-addressed store, hash-verified

74/// Recursively collect every file path under `root` (relative), for a
75/// before/after "nothing was written" assertion.
76fn snapshot_files(root: &Path) -> BTreeSet<String> {
77 let mut set = BTreeSet::new();
78 fn walk(dir: &Path, base: &Path, set: &mut BTreeSet<String>) {
79 let Ok(entries) = std::fs::read_dir(dir) else {
80 return;
81 };
82 for entry in entries.flatten() {
83 let path = entry.path();
84 if path.is_dir() {
85 walk(&path, base, set);
86 } else if let Ok(rel) = path.strip_prefix(base) {
87 set.insert(rel.to_string_lossy().to_string());
88 }
89 }
90 }
91 walk(root, root, &mut set);
92 set
93}
94
95/// Create a default identity in a test-owned identity store rooted under
96/// `home_dir/.atomic/identities`, matching `IdentityStore::open_default()` when

Calls 1

walkFunction · 0.70

Tested by

no test coverage detected