mirror of
https://github.com/rclone/rclone.git
synced 2024-11-23 00:43:49 +01:00
Make 0 size files specifiable with --max-size 0b
- fixes #450
This commit is contained in:
parent
e818b7c206
commit
a21cc161de
12
fs/filter.go
12
fs/filter.go
@ -28,8 +28,8 @@ var (
|
|||||||
filesFrom = pflag.StringP("files-from", "", "", "Read list of source-file names from file")
|
filesFrom = pflag.StringP("files-from", "", "", "Read list of source-file names from file")
|
||||||
minAge = pflag.StringP("min-age", "", "", "Don't transfer any file younger than this in s or suffix ms|s|m|h|d|w|M|y")
|
minAge = pflag.StringP("min-age", "", "", "Don't transfer any file younger than this in s or suffix ms|s|m|h|d|w|M|y")
|
||||||
maxAge = pflag.StringP("max-age", "", "", "Don't transfer any file older than this in s or suffix ms|s|m|h|d|w|M|y")
|
maxAge = pflag.StringP("max-age", "", "", "Don't transfer any file older than this in s or suffix ms|s|m|h|d|w|M|y")
|
||||||
minSize SizeSuffix
|
minSize = SizeSuffix(-1)
|
||||||
maxSize SizeSuffix
|
maxSize = SizeSuffix(-1)
|
||||||
dumpFilters = pflag.BoolP("dump-filters", "", false, "Dump the filters to the output")
|
dumpFilters = pflag.BoolP("dump-filters", "", false, "Dump the filters to the output")
|
||||||
//cvsExclude = pflag.BoolP("cvs-exclude", "C", false, "Exclude files in the same way CVS does")
|
//cvsExclude = pflag.BoolP("cvs-exclude", "C", false, "Exclude files in the same way CVS does")
|
||||||
)
|
)
|
||||||
@ -342,8 +342,8 @@ func (f *Filter) InActive() bool {
|
|||||||
return (f.files == nil &&
|
return (f.files == nil &&
|
||||||
f.ModTimeFrom.IsZero() &&
|
f.ModTimeFrom.IsZero() &&
|
||||||
f.ModTimeTo.IsZero() &&
|
f.ModTimeTo.IsZero() &&
|
||||||
f.MinSize == 0 &&
|
f.MinSize < 0 &&
|
||||||
f.MaxSize == 0 &&
|
f.MaxSize < 0 &&
|
||||||
f.fileRules.len() == 0 &&
|
f.fileRules.len() == 0 &&
|
||||||
f.dirRules.len() == 0)
|
f.dirRules.len() == 0)
|
||||||
}
|
}
|
||||||
@ -390,10 +390,10 @@ func (f *Filter) Include(remote string, size int64, modTime time.Time) bool {
|
|||||||
if !f.ModTimeTo.IsZero() && modTime.After(f.ModTimeTo) {
|
if !f.ModTimeTo.IsZero() && modTime.After(f.ModTimeTo) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if f.MinSize != 0 && size < f.MinSize {
|
if f.MinSize >= 0 && size < f.MinSize {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if f.MaxSize != 0 && size > f.MaxSize {
|
if f.MaxSize >= 0 && size > f.MaxSize {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return f.includeRemote(remote)
|
return f.includeRemote(remote)
|
||||||
|
@ -49,8 +49,8 @@ func TestNewFilterDefault(t *testing.T) {
|
|||||||
f, err := NewFilter()
|
f, err := NewFilter()
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.False(t, f.DeleteExcluded)
|
assert.False(t, f.DeleteExcluded)
|
||||||
assert.Equal(t, int64(0), f.MinSize)
|
assert.Equal(t, int64(-1), f.MinSize)
|
||||||
assert.Equal(t, int64(0), f.MaxSize)
|
assert.Equal(t, int64(-1), f.MaxSize)
|
||||||
assert.Len(t, f.fileRules.rules, 0)
|
assert.Len(t, f.fileRules.rules, 0)
|
||||||
assert.Len(t, f.dirRules.rules, 0)
|
assert.Len(t, f.dirRules.rules, 0)
|
||||||
assert.Nil(t, f.files)
|
assert.Nil(t, f.files)
|
||||||
@ -109,8 +109,8 @@ func TestNewFilterFull(t *testing.T) {
|
|||||||
rm(*excludeFrom)
|
rm(*excludeFrom)
|
||||||
rm(*includeFrom)
|
rm(*includeFrom)
|
||||||
rm(*filesFrom)
|
rm(*filesFrom)
|
||||||
minSize = 0
|
minSize = -1
|
||||||
maxSize = 0
|
maxSize = -1
|
||||||
deleteExcluded = &isFalse
|
deleteExcluded = &isFalse
|
||||||
filterRule = &emptyString
|
filterRule = &emptyString
|
||||||
filterFrom = &emptyString
|
filterFrom = &emptyString
|
||||||
@ -352,7 +352,6 @@ func TestNewFilterMatches(t *testing.T) {
|
|||||||
{"a/one.png", 101, 0, false},
|
{"a/one.png", 101, 0, false},
|
||||||
{"unicorn", 99, 0, false},
|
{"unicorn", 99, 0, false},
|
||||||
})
|
})
|
||||||
t.Log(f.DumpFilters())
|
|
||||||
testDirInclude(t, f, []includeDirTest{
|
testDirInclude(t, f, []includeDirTest{
|
||||||
{"sausage1", false},
|
{"sausage1", false},
|
||||||
{"sausage2", false},
|
{"sausage2", false},
|
||||||
|
@ -709,7 +709,7 @@ func TestSyncWithExclude(t *testing.T) {
|
|||||||
|
|
||||||
fs.Config.Filter.MaxSize = 40
|
fs.Config.Filter.MaxSize = 40
|
||||||
defer func() {
|
defer func() {
|
||||||
fs.Config.Filter.MaxSize = 0
|
fs.Config.Filter.MaxSize = -1
|
||||||
}()
|
}()
|
||||||
|
|
||||||
fs.Stats.ResetCounters()
|
fs.Stats.ResetCounters()
|
||||||
@ -742,7 +742,7 @@ func TestSyncWithExcludeAndDeleteExcluded(t *testing.T) {
|
|||||||
fs.Config.Filter.MaxSize = 40
|
fs.Config.Filter.MaxSize = 40
|
||||||
fs.Config.Filter.DeleteExcluded = true
|
fs.Config.Filter.DeleteExcluded = true
|
||||||
defer func() {
|
defer func() {
|
||||||
fs.Config.Filter.MaxSize = 0
|
fs.Config.Filter.MaxSize = -1
|
||||||
fs.Config.Filter.DeleteExcluded = false
|
fs.Config.Filter.DeleteExcluded = false
|
||||||
}()
|
}()
|
||||||
|
|
||||||
@ -999,7 +999,7 @@ func TestDelete(t *testing.T) {
|
|||||||
|
|
||||||
fs.Config.Filter.MaxSize = 60
|
fs.Config.Filter.MaxSize = 60
|
||||||
defer func() {
|
defer func() {
|
||||||
fs.Config.Filter.MaxSize = 0
|
fs.Config.Filter.MaxSize = -1
|
||||||
}()
|
}()
|
||||||
|
|
||||||
err := fs.Delete(r.fremote)
|
err := fs.Delete(r.fremote)
|
||||||
|
Loading…
Reference in New Issue
Block a user