-
Notifications
You must be signed in to change notification settings - Fork 1
/
copyrec_common.go
43 lines (32 loc) · 1.04 KB
/
copyrec_common.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package copyrec
type DirAction int
const (
DirMatch DirAction = iota
DirFallThrough
DirSkip
)
type Options struct {
// Set UID for copied files/directories.
UID *uint32
// Set GID for copied files/directories.
GID *uint32
// Function decides should we match a directory while walking, fall through it to continue searching for matches or skip it.
// If not defined, but matchFile is defined, then it always returns DirFallThrough.
// If not defined and matchFile is undefined, then it always returns DirMatch.
MatchDir func(path string) (DirAction, error)
// Function decides whether should we match a file while walking.
// If not defined, then it always returns true.
MatchFile func(path string) (bool, error)
AbortIfDestParentDirNotExists bool
}
type CopyRecurse struct {
src string
dest string
uid *uint32
gid *uint32
matchDir func(path string) (DirAction, error)
matchFile func(path string) (bool, error)
abortIfDestParentDirNotExists bool
// TODO: how memory/CPU-effective is working with this?
visitedDestDirs []string
}