mirror of
https://github.com/rclone/rclone.git
synced 2025-02-20 07:48:33 +02:00
Fix --min-age and --max-age when only one is present
This commit is contained in:
parent
a1269fa669
commit
e69e181090
@ -182,6 +182,7 @@ func NewFilter() (f *Filter, err error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
f.ModTimeTo = time.Now().Add(-duration)
|
f.ModTimeTo = time.Now().Add(-duration)
|
||||||
|
Debug(nil, "--min-age %v to %v", duration, f.ModTimeTo)
|
||||||
}
|
}
|
||||||
if *maxAge != "" {
|
if *maxAge != "" {
|
||||||
duration, err := ParseDuration(*maxAge)
|
duration, err := ParseDuration(*maxAge)
|
||||||
@ -192,6 +193,7 @@ func NewFilter() (f *Filter, err error) {
|
|||||||
if !f.ModTimeTo.IsZero() && f.ModTimeTo.Before(f.ModTimeFrom) {
|
if !f.ModTimeTo.IsZero() && f.ModTimeTo.Before(f.ModTimeFrom) {
|
||||||
return nil, fmt.Errorf("Argument --min-age can't be larger than --max-age")
|
return nil, fmt.Errorf("Argument --min-age can't be larger than --max-age")
|
||||||
}
|
}
|
||||||
|
Debug(nil, "--max-age %v to %v", duration, f.ModTimeFrom)
|
||||||
}
|
}
|
||||||
if *dumpFilters {
|
if *dumpFilters {
|
||||||
fmt.Println("--- start filters ---")
|
fmt.Println("--- start filters ---")
|
||||||
@ -265,7 +267,7 @@ func (f *Filter) Include(remote string, size int64, modTime time.Time) bool {
|
|||||||
if !f.ModTimeFrom.IsZero() && modTime.Before(f.ModTimeFrom) {
|
if !f.ModTimeFrom.IsZero() && modTime.Before(f.ModTimeFrom) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if !f.ModTimeFrom.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 {
|
||||||
@ -288,7 +290,7 @@ func (f *Filter) Include(remote string, size int64, modTime time.Time) bool {
|
|||||||
func (f *Filter) IncludeObject(o Object) bool {
|
func (f *Filter) IncludeObject(o Object) bool {
|
||||||
var modTime time.Time
|
var modTime time.Time
|
||||||
|
|
||||||
if !f.ModTimeFrom.IsZero() || !f.ModTimeFrom.IsZero() {
|
if !f.ModTimeFrom.IsZero() || !f.ModTimeTo.IsZero() {
|
||||||
modTime = o.ModTime()
|
modTime = o.ModTime()
|
||||||
} else {
|
} else {
|
||||||
modTime = time.Unix(0, 0)
|
modTime = time.Unix(0, 0)
|
||||||
|
@ -234,19 +234,49 @@ func TestNewFilterMaxSize(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNewFilterModFile(t *testing.T) {
|
func TestNewFilterMinAndMaxAge(t *testing.T) {
|
||||||
f, err := NewFilter()
|
f, err := NewFilter()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
f.ModTimeFrom = time.Unix(1447346230, 0)
|
f.ModTimeFrom = time.Unix(1440000002, 0)
|
||||||
f.ModTimeTo = time.Unix(1447432630, 0)
|
f.ModTimeTo = time.Unix(1440000003, 0)
|
||||||
testInclude(t, f, []includeTest{
|
testInclude(t, f, []includeTest{
|
||||||
{"file1.jpg", 100, 1447346230, true},
|
{"file1.jpg", 100, 1440000000, false},
|
||||||
{"file2.jpg", 101, 1447389430, true},
|
{"file2.jpg", 101, 1440000001, false},
|
||||||
{"file3.jpg", 102, 1447432630, true},
|
{"file3.jpg", 102, 1440000002, true},
|
||||||
{"potato/file1.jpg", 98, 1447346229, false},
|
{"potato/file1.jpg", 98, 1440000003, true},
|
||||||
{"potato/file2.jpg", 99, 1447432631, false},
|
{"potato/file2.jpg", 99, 1440000004, false},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNewFilterMinAge(t *testing.T) {
|
||||||
|
f, err := NewFilter()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
f.ModTimeTo = time.Unix(1440000002, 0)
|
||||||
|
testInclude(t, f, []includeTest{
|
||||||
|
{"file1.jpg", 100, 1440000000, true},
|
||||||
|
{"file2.jpg", 101, 1440000001, true},
|
||||||
|
{"file3.jpg", 102, 1440000002, true},
|
||||||
|
{"potato/file1.jpg", 98, 1440000003, false},
|
||||||
|
{"potato/file2.jpg", 99, 1440000004, false},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNewFilterMaxAge(t *testing.T) {
|
||||||
|
f, err := NewFilter()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
f.ModTimeFrom = time.Unix(1440000002, 0)
|
||||||
|
testInclude(t, f, []includeTest{
|
||||||
|
{"file1.jpg", 100, 1440000000, false},
|
||||||
|
{"file2.jpg", 101, 1440000001, false},
|
||||||
|
{"file3.jpg", 102, 1440000002, true},
|
||||||
|
{"potato/file1.jpg", 98, 1440000003, true},
|
||||||
|
{"potato/file2.jpg", 99, 1440000004, true},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user