@@ -28,6 +28,8 @@ var mode = flag.String("mode", "cli", "Use as a CLI tool")
2828
2929var region = flag .String ("region" , "" , "AWS region" )
3030
31+ var bucketsFilterS = flag .String ("buckets" , "" , "Comma-separated list of buckets to check" )
32+
3133var apiToken = flag .String ("api-token" , "" , "API token for Joom Cloud" )
3234
3335var apiEndpoint = flag .String ("api-endpoint" , "https://api.cloud.joom.ai/v1" , "API endpoint URL" )
@@ -46,6 +48,14 @@ func main() {
4648 client := s3 .NewFromConfig (cfg )
4749 api := NewApi (* apiEndpoint , apiToken )
4850
51+ bucketsFilter := map [string ]struct {}{}
52+ if bucketsFilterS != nil && * bucketsFilterS != "" {
53+ for _ , bucket := range strings .Split (* bucketsFilterS , "," ) {
54+ bucketsFilter [bucket ] = struct {}{}
55+ }
56+ fmt .Printf ("Filtering buckets: %v\n " , len (bucketsFilter ))
57+ }
58+
4959 switch * mode {
5060 case "cli" :
5161 // For CLI, use a simplified logger
@@ -89,7 +99,7 @@ func main() {
8999 identity := * stsOutput .Arn
90100 fmt .Printf ("Info: your AWS identity is %s\n " , identity )
91101
92- buckets , issues , err := runS3Checks (rootCtx , client )
102+ buckets , issues , err := runS3Checks (rootCtx , client , bucketsFilter )
93103 if err != nil {
94104 var ae smithy.APIError
95105 if errors .As (err , & ae ) {
@@ -125,7 +135,7 @@ func main() {
125135 log .Info ().Msgf ("running with AWS identity %s" , * stsOutput .Arn )
126136 }
127137
128- buckets , _ , err := runS3Checks (rootCtx , client )
138+ buckets , _ , err := runS3Checks (rootCtx , client , bucketsFilter )
129139 if err != nil {
130140 log .Fatal ().Err (err ).Msg ("could not list buckets" )
131141 }
0 commit comments