@@ -4,14 +4,14 @@ import (
44 "mime"
55 "os"
66 "path/filepath"
7- "regexp"
87 "strings"
98
109 "github.com/aws/aws-sdk-go/aws"
1110 "github.com/aws/aws-sdk-go/aws/credentials"
1211 "github.com/aws/aws-sdk-go/aws/session"
1312 "github.com/aws/aws-sdk-go/service/s3"
1413 "github.com/mattn/go-zglob"
14+ "github.com/bmatcuk/doublestar"
1515 log "github.com/sirupsen/logrus"
1616)
1717
@@ -118,21 +118,13 @@ func (p *Plugin) Exec() error {
118118 }
119119
120120 if len (p .TargetRemove ) != 0 {
121- reg , regexperr := regexp .Compile (p .TargetRemove )
122121
123- if regexperr != nil {
124- log .WithFields (log.Fields {
125- "error" : regexperr ,
126- "regexp" : p .TargetRemove ,
127- }).Error ("Regular expression failed to compile" )
128- return regexperr
129- }
130122
131123 log .WithFields (log.Fields {
132- "regexp " : p .TargetRemove ,
133- }).Info ("Deleting files according to regexp " )
124+ "glob " : p .TargetRemove ,
125+ }).Info ("Deleting files according to glob " )
134126
135- log .Info ("Listing files in bucket" ) // @ToDo: Log.Debug
127+ log .Info ("Listing files in bucket" )
136128 list_input := & s3.ListObjectsInput {
137129 Bucket : & p .Bucket ,
138130 }
@@ -148,7 +140,18 @@ func (p *Plugin) Exec() error {
148140 var to_remove []string
149141 for _ , object := range s3_objects .Contents {
150142 filename := object .Key
151- if reg .MatchString (* filename ) {
143+
144+ globmatch , globerr := doublestar .PathMatch (p .TargetRemove , * filename )
145+
146+ if (globerr != nil ) {
147+ log .WithFields (log.Fields {
148+ "error" : globerr ,
149+ "glob" : p .TargetRemove ,
150+ }).Error ("Error with provided glob" )
151+ return globerr
152+ }
153+
154+ if (globmatch ) {
152155 to_remove = append (to_remove , * filename )
153156 }
154157 }
0 commit comments