diff options
author | Matthias Beyer <matthias.beyer@atos.net> | 2021-08-24 10:23:41 +0200 |
---|---|---|
committer | Matthias Beyer <matthias.beyer@atos.net> | 2021-08-26 12:30:22 +0200 |
commit | b7b83c2d658db60a29c46f4d19f5ba988d0c281d (patch) | |
tree | 9e60f6349e01843df7a8b95cd9793e48b0aceca3 /src/repository | |
parent | 60ea0e6675e3fca4ff1b48245a1609999a00faed (diff) |
Add an intermediate pkg.toml file content file collecting contents
Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src/repository')
-rw-r--r-- | src/repository/fs.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/repository/fs.rs b/src/repository/fs.rs index 3b7972f..3fe6cd4 100644 --- a/src/repository/fs.rs +++ b/src/repository/fs.rs @@ -60,6 +60,12 @@ impl TryFrom<&std::path::Component<'_>> for PathComponent { } } +impl PathComponent { + fn is_pkg_toml(&self) -> bool { + std::matches!(self, PathComponent::PkgToml) + } +} + impl FileSystemRepresentation { pub fn load(root: PathBuf) -> Result<Self> { @@ -149,6 +155,12 @@ impl FileSystemRepresentation { for elem in path.components() { let elem = PathComponent::try_from(&elem)?; + if !elem.is_pkg_toml() { + if let Some(Element::File(intermediate)) = curr_hm.get(&PathComponent::PkgToml) { + res.push(intermediate); + } + } + match curr_hm.get(&elem) { Some(Element::File(cont)) => res.push(cont), Some(Element::Dir(hm)) => curr_hm = hm, |