32 lines
521 B
Go
32 lines
521 B
Go
|
package backup
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"sync"
|
||
|
)
|
||
|
|
||
|
type IncludedFiles struct {
|
||
|
sync.RWMutex
|
||
|
files map[string]*os.FileInfo
|
||
|
}
|
||
|
|
||
|
// Pushes an additional file or folder onto the struct.
|
||
|
func (i *IncludedFiles) Push(info *os.FileInfo, p string) {
|
||
|
i.Lock()
|
||
|
defer i.Unlock()
|
||
|
|
||
|
if i.files == nil {
|
||
|
i.files = make(map[string]*os.FileInfo)
|
||
|
}
|
||
|
|
||
|
i.files[p] = info
|
||
|
}
|
||
|
|
||
|
// Returns all of the files that were marked as being included.
|
||
|
func (i *IncludedFiles) All() map[string]*os.FileInfo {
|
||
|
i.RLock()
|
||
|
defer i.RUnlock()
|
||
|
|
||
|
return i.files
|
||
|
}
|