diff options
| author | Grégoire Duchêne <gduchene@awhk.org> | 2021-07-04 15:33:18 +0100 |
|---|---|---|
| committer | Grégoire Duchêne <gduchene@awhk.org> | 2021-07-04 15:33:18 +0100 |
| commit | 80b5a6680e2fc4d2f1e425ff2e5f1cfbbd529d9e (patch) | |
| tree | 6286c7d490ebfe4b8c1013dbb2807e8c55e0d71d /main_aws.go | |
| parent | 8c5aaad11e949adfd1545b7802899b81f7d74ed5 (diff) | |
Simplify project structure
Diffstat (limited to 'main_aws.go')
| -rw-r--r-- | main_aws.go | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/main_aws.go b/main_aws.go new file mode 100644 index 0000000..c81cfc6 --- /dev/null +++ b/main_aws.go @@ -0,0 +1,38 @@ +// Copyright (c) 2019, Grégoire Duchêne <gduchene@awhk.org> +// +// Use of this source code is governed by the ISC license that can be +// found in the LICENSE file. + +// +build aws,linux + +package main + +import ( + "context" + "net/http" + "path" + + "github.com/aws/aws-lambda-go/events" + "github.com/aws/aws-lambda-go/lambda" +) + +func redirect(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { + var ( + pkg = path.Join(req.Headers["Host"], req.Path) + resp = events.APIGatewayProxyResponse{ + Body: GetBody(pkg), + Headers: map[string]string{"Content-Type": "text/html; charset=utf-8"}, + } + ) + if v, ok := req.QueryStringParameters["go-get"]; ok && v == "1" { + resp.StatusCode = http.StatusOK + } else { + resp.Headers["Location"] = "https://pkg.go.dev/" + pkg + resp.StatusCode = http.StatusFound + } + return resp, nil +} + +func main() { + lambda.Start(redirect) +} |
