aboutsummaryrefslogtreecommitdiff
path: root/main_aws.go
diff options
context:
space:
mode:
Diffstat (limited to 'main_aws.go')
-rw-r--r--main_aws.go60
1 files changed, 0 insertions, 60 deletions
diff --git a/main_aws.go b/main_aws.go
deleted file mode 100644
index 76cd5b9..0000000
--- a/main_aws.go
+++ /dev/null
@@ -1,60 +0,0 @@
-// SPDX-FileCopyrightText: © 2019 Grégoire Duchêne <gduchene@awhk.org>
-// SPDX-License-Identifier: ISC
-
-//go:build aws && linux
-
-package main
-
-import (
- "context"
- "net/http"
- "os"
- "path"
- "regexp"
- "strings"
-
- "github.com/aws/aws-lambda-go/events"
- "github.com/aws/aws-lambda-go/lambda"
-
- "go.awhk.org/go-import-redirect/pkg/redirector"
-)
-
-var transf = redirector.Transformer{
- Pattern: &redirector.Pattern{regexp.MustCompile(strings.ReplaceAll(os.Getenv("FROM"), `\\`, `\`))},
- Replacement: os.Getenv("TO"),
- VCS: os.Getenv("VCS"),
-}
-
-func redirect(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
- pkg := path.Join(req.Headers["Host"], req.Path)
-
- if !transf.Pattern.MatchString(pkg) {
- return events.APIGatewayProxyResponse{StatusCode: http.StatusNotFound}, nil
- }
-
- if v, ok := req.QueryStringParameters["go-get"]; !ok || v != "1" {
- return events.APIGatewayProxyResponse{
- Headers: map[string]string{"Location": "https://pkg.go.dev/" + pkg},
- StatusCode: http.StatusFound,
- }, nil
- }
-
- data := redirector.TemplateData{
- Package: pkg,
- Repository: transf.Pattern.ReplaceAllString(pkg, transf.Replacement),
- VCS: transf.VCS,
- }
- var buf strings.Builder
- if err := redirector.DefaultTemplate.Execute(&buf, data); err != nil {
- return events.APIGatewayProxyResponse{}, err
- }
- return events.APIGatewayProxyResponse{
- Body: buf.String(),
- Headers: map[string]string{"Content-Type": "text/html; charset=utf-8"},
- StatusCode: http.StatusOK,
- }, nil
-}
-
-func main() {
- lambda.Start(redirect)
-}