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,50 +431,46 @@ Or you can go back to the classic croc behavior by enabling classic mode:
if err != nil { if err != nil {
return return
} }
minimalFileInfosInclude := []croc.FileInfo{} if len(crocOptions.Exclude) > 0 {
exclusions := []string{} minimalFileInfosInclude := []croc.FileInfo{}
for _, exclude := range crocOptions.Exclude { emptyFoldersToTransferInclude := []croc.FileInfo{}
exclusions = append(exclusions, strings.ToLower(exclude)) for _, f := range minimalFileInfos {
} exclude := false
for _, f := range minimalFileInfos { for _, exclusion := range crocOptions.Exclude {
exclude := false if strings.Contains(path.Join(strings.ToLower(f.FolderRemote), strings.ToLower(f.Name)), exclusion) {
for _, exclusion := range exclusions { exclude = true
if strings.Contains(path.Join(strings.ToLower(f.FolderRemote), strings.ToLower(f.Name)), exclusion) { break
exclude = true }
break }
if !exclude {
minimalFileInfosInclude = append(minimalFileInfosInclude, f)
} }
} }
if !exclude { for _, f := range emptyFoldersToTransfer {
minimalFileInfosInclude = append(minimalFileInfosInclude, f) exclude := false
} for _, exclusion := range crocOptions.Exclude {
} if strings.Contains(path.Join(strings.ToLower(f.FolderRemote), strings.ToLower(f.Name)), exclusion) {
emptyFoldersToTransferInclude := []croc.FileInfo{} exclude = true
for _, f := range emptyFoldersToTransfer { break
exclude := false }
for _, exclusion := range exclusions { }
if strings.Contains(path.Join(strings.ToLower(f.FolderRemote), strings.ToLower(f.Name)), exclusion) { if !exclude {
exclude = true emptyFoldersToTransferInclude = append(emptyFoldersToTransferInclude, f)
break
} }
} }
if !exclude { totalNumberFolders = 0
emptyFoldersToTransferInclude = append(emptyFoldersToTransferInclude, f) folderMap := make(map[string]bool)
for _, f := range minimalFileInfosInclude {
folderMap[f.FolderRemote] = true
} }
for _, f := range emptyFoldersToTransferInclude {
folderMap[f.FolderRemote] = true
}
totalNumberFolders = len(folderMap)
minimalFileInfos = minimalFileInfosInclude
emptyFoldersToTransfer = emptyFoldersToTransferInclude
} }
totalNumberFolders = 0
folderMap := make(map[string]bool)
for _, f := range minimalFileInfosInclude {
folderMap[f.FolderRemote] = true
log.Tracef("zxvc file: %+v", f)
// is folder
}
for _, f := range emptyFoldersToTransferInclude {
log.Tracef("zxvc folder: %+v", f)
}
totalNumberFolders = len(folderMap)
log.Debugf("zxvc total number of folders: %d", totalNumberFolders)
cr, err := croc.New(crocOptions) cr, err := croc.New(crocOptions)
if err != nil { if err != nil {
return return
@ -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
} }