Fix type error with NAR accesssor

This commit is contained in:
John Ericson 2024-09-24 12:14:23 -04:00
parent 012cbd43f5
commit ceb8b48cce

View File

@ -60,26 +60,26 @@ struct Extractor : FileSystemObjectSink
: members(members), prefix(prefix) : members(members), prefix(prefix)
{ } { }
void createDirectory(const Path & path) override void createDirectory(const CanonPath & path) override
{ {
members.insert_or_assign(prefix + path, NarMemberData { .type = SourceAccessor::Type::tDirectory }); members.insert_or_assign(prefix + path.abs(), NarMemberData { .type = SourceAccessor::Type::tDirectory });
} }
void createRegularFile(const Path & path, std::function<void(CreateRegularFileSink &)> func) override void createRegularFile(const CanonPath & path, std::function<void(CreateRegularFileSink &)> func) override
{ {
NarMemberConstructor nmc { NarMemberConstructor nmc {
members.insert_or_assign(prefix + path, NarMemberData { members.insert_or_assign(prefix + path.abs(), NarMemberData {
.type = SourceAccessor::Type::tRegular, .type = SourceAccessor::Type::tRegular,
.fileSize = 0, .fileSize = 0,
.contents = filesToKeep.count(path) ? std::optional("") : std::nullopt, .contents = filesToKeep.count(path.abs()) ? std::optional("") : std::nullopt,
}).first->second, }).first->second,
}; };
func(nmc); func(nmc);
} }
void createSymlink(const Path & path, const std::string & target) override void createSymlink(const CanonPath & path, const std::string & target) override
{ {
members.insert_or_assign(prefix + path, NarMemberData { .type = SourceAccessor::Type::tSymlink }); members.insert_or_assign(prefix + path.abs(), NarMemberData { .type = SourceAccessor::Type::tSymlink });
} }
}; };