@@ -3,7 +3,6 @@ package main
33import (
44 "archive/zip"
55 "bytes"
6- "encoding/json"
76 "errors"
87 "fmt"
98 "log"
@@ -18,66 +17,13 @@ import (
1817 "github.com/aws/aws-sdk-go/aws/session"
1918 "github.com/aws/aws-sdk-go/service/cloudfront"
2019 "github.com/aws/aws-sdk-go/service/lambda"
21- "github.com/aws/aws-sdk-go/service/s3"
2220)
2321
2422type AwsCmd struct {
25- S3UpdateConfig AwsS3UpdateConfigCmd `kong:"cmd,name=s3-update-config"`
2623 LambdaInvoke AwsLambdaInvokeCmd `kong:"cmd,name=lambda-invoke"`
2724 CloudfrontUpdate AwsCloudfrontUpdateCmd `kong:"cmd,name=cloudfront-update"`
2825}
2926
30- type AwsS3UpdateConfigCmd struct {
31- Region string `kong:"name='region',env='AWS_REGION'"`
32- S3Bucket string `kong:"name='s3-bucket',env='AWS_S3_BUCKET'"`
33- S3Config string `kong:"name='s3-website-config',env='AWS_S3_CONFIG'"`
34- DryRun bool `kong:"name='dry-run',env='DRY_RUN'"`
35- }
36-
37- func (s * AwsS3UpdateConfigCmd ) Run () error {
38- if s .DryRun {
39- log .Printf ("INFO: Dry run mode enabled. Configuration:\n Region: %s\n S3Bucket: %s\n S3Config: %s\n " , s .Region , s .S3Bucket , s .S3Config )
40- return nil
41- }
42-
43- file , err := os .ReadFile (s .S3Config )
44- if err != nil {
45- return fmt .Errorf ("failed to read s3 config file %s: %w" , s .S3Config , err )
46- }
47-
48- data := s3.WebsiteConfiguration {}
49- err = json .Unmarshal (file , & data )
50- if err != nil {
51- return fmt .Errorf ("failed to parse JSON from %s: %w" , s .S3Config , err )
52- }
53-
54- sess , err := session .NewSession (& aws.Config {
55- Credentials : awsCredentials (),
56- Region : aws .String (s .Region ),
57- })
58- if err != nil {
59- return fmt .Errorf ("failed to create session: %w" , err )
60- }
61-
62- svc := s3 .New (sess )
63-
64- // Create SetBucketWebsite parameters based on the JSON file input
65- params := s3.PutBucketWebsiteInput {
66- Bucket : aws .String (s .S3Bucket ),
67- WebsiteConfiguration : & data ,
68- }
69-
70- // Set the website configuration on the bucket.
71- // Replacing any existing configuration.
72- _ , err = svc .PutBucketWebsite (& params )
73- if err != nil {
74- return fmt .Errorf ("unable to set bucket %q website configuration: %w" , s .S3Bucket , err )
75- }
76-
77- log .Printf ("INFO: successfully set bucket %q website configuration\n " , s .S3Bucket )
78- return nil
79- }
80-
8127type AwsLambdaInvokeCmd struct {
8228 Region string `kong:"name='region',env='AWS_REGION'"`
8329 LambdaFunction string `kong:"name='lambda-function',env='AWS_LAMBDA_FUNCTION'"`
0 commit comments