summaryrefslogtreecommitdiffstats
path: root/src/repository
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2021-08-24 10:23:41 +0200
committerMatthias Beyer <matthias.beyer@atos.net>2021-08-26 12:30:22 +0200
commitb7b83c2d658db60a29c46f4d19f5ba988d0c281d (patch)
tree9e60f6349e01843df7a8b95cd9793e48b0aceca3 /src/repository
parent60ea0e6675e3fca4ff1b48245a1609999a00faed (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.rs12
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,