Add context cancellation support to Scan

This commit is contained in:
Jeffrey Paul 2025-12-17 17:07:02 -08:00
parent b55ae961c8
commit 1ae384b6f6

View File

@ -192,12 +192,19 @@ func (m *manifest) addFile(p string, fi fs.FileInfo, sfsIndex int) error {
}
func (m *manifest) Scan() error {
// FIXME scan and whatever function does the hashing should take ctx
for idx, sfs := range m.sourceFS {
if sfs == nil {
return errors.New("invalid source fs")
}
e := afero.Walk(sfs, "/", func(p string, info fs.FileInfo, err error) error {
// Check for context cancellation
if m.ctx != nil {
select {
case <-m.ctx.Done():
return m.ctx.Err()
default:
}
}
return m.addFile(p, info, idx)
})
if e != nil {