1
1
Fork 0
mirror of https://github.com/schollz/croc.git synced 2025-10-11 05:11:06 +02:00

fix: correctly apply exclusion filter

This commit is contained in:
Zackary Scholl 2024-12-31 08:57:34 -08:00
parent e8758f6a94
commit 08f9d393e2

View file

@ -431,14 +431,12 @@ Or you can go back to the classic croc behavior by enabling classic mode:
if err != nil { if err != nil {
return return
} }
if len(crocOptions.Exclude) > 0 {
minimalFileInfosInclude := []croc.FileInfo{} minimalFileInfosInclude := []croc.FileInfo{}
exclusions := []string{} emptyFoldersToTransferInclude := []croc.FileInfo{}
for _, exclude := range crocOptions.Exclude {
exclusions = append(exclusions, strings.ToLower(exclude))
}
for _, f := range minimalFileInfos { for _, f := range minimalFileInfos {
exclude := false exclude := false
for _, exclusion := range exclusions { for _, exclusion := range crocOptions.Exclude {
if strings.Contains(path.Join(strings.ToLower(f.FolderRemote), strings.ToLower(f.Name)), exclusion) { if strings.Contains(path.Join(strings.ToLower(f.FolderRemote), strings.ToLower(f.Name)), exclusion) {
exclude = true exclude = true
break break
@ -448,10 +446,9 @@ Or you can go back to the classic croc behavior by enabling classic mode:
minimalFileInfosInclude = append(minimalFileInfosInclude, f) minimalFileInfosInclude = append(minimalFileInfosInclude, f)
} }
} }
emptyFoldersToTransferInclude := []croc.FileInfo{}
for _, f := range emptyFoldersToTransfer { for _, f := range emptyFoldersToTransfer {
exclude := false exclude := false
for _, exclusion := range exclusions { for _, exclusion := range crocOptions.Exclude {
if strings.Contains(path.Join(strings.ToLower(f.FolderRemote), strings.ToLower(f.Name)), exclusion) { if strings.Contains(path.Join(strings.ToLower(f.FolderRemote), strings.ToLower(f.Name)), exclusion) {
exclude = true exclude = true
break break
@ -461,19 +458,18 @@ Or you can go back to the classic croc behavior by enabling classic mode:
emptyFoldersToTransferInclude = append(emptyFoldersToTransferInclude, f) emptyFoldersToTransferInclude = append(emptyFoldersToTransferInclude, f)
} }
} }
totalNumberFolders = 0 totalNumberFolders = 0
folderMap := make(map[string]bool) folderMap := make(map[string]bool)
for _, f := range minimalFileInfosInclude { for _, f := range minimalFileInfosInclude {
folderMap[f.FolderRemote] = true folderMap[f.FolderRemote] = true
log.Tracef("zxvc file: %+v", f)
// is folder
} }
for _, f := range emptyFoldersToTransferInclude { for _, f := range emptyFoldersToTransferInclude {
log.Tracef("zxvc folder: %+v", f) folderMap[f.FolderRemote] = true
} }
totalNumberFolders = len(folderMap) totalNumberFolders = len(folderMap)
log.Debugf("zxvc total number of folders: %d", totalNumberFolders) minimalFileInfos = minimalFileInfosInclude
emptyFoldersToTransfer = emptyFoldersToTransferInclude
}
cr, err := croc.New(crocOptions) cr, err := croc.New(crocOptions)
if err != nil { if err != nil {
@ -483,7 +479,7 @@ Or you can go back to the classic croc behavior by enabling classic mode:
// save the config // save the config
saveConfig(c, crocOptions) saveConfig(c, crocOptions)
err = cr.Send(minimalFileInfosInclude, emptyFoldersToTransferInclude, totalNumberFolders) err = cr.Send(minimalFileInfos, emptyFoldersToTransfer, totalNumberFolders)
return return
} }