Button to rescan all folders, fixes #1151

This commit is contained in:
Karol Różycki
2015-02-11 19:52:59 +01:00
parent bbaeca96eb
commit ec160f1f0a
5 changed files with 31 additions and 11 deletions

View File

@@ -1111,7 +1111,7 @@ func (m *Model) AddFolder(cfg config.FolderConfiguration) {
m.fmut.Unlock()
}
func (m *Model) ScanFolders() {
func (m *Model) ScanFolders() map[string]error {
m.fmut.RLock()
var folders = make([]string, 0, len(m.folderCfgs))
for folder := range m.folderCfgs {
@@ -1119,6 +1119,9 @@ func (m *Model) ScanFolders() {
}
m.fmut.RUnlock()
var errors = make(map[string]error, len(m.folderCfgs))
var errorsMut sync.Mutex
var wg sync.WaitGroup
wg.Add(len(folders))
for _, folder := range folders {
@@ -1126,12 +1129,16 @@ func (m *Model) ScanFolders() {
go func() {
err := m.ScanFolder(folder)
if err != nil {
errorsMut.Lock()
errors[folder] = err
errorsMut.Unlock()
m.cfg.InvalidateFolder(folder, err.Error())
}
wg.Done()
}()
}
wg.Wait()
return errors
}
func (m *Model) ScanFolder(folder string) error {