From fc1a6692348673e9703b09ae22e7cdd93c67e4ff Mon Sep 17 00:00:00 2001 From: Grégoire Duchêne Date: Fri, 6 Sep 2019 00:33:22 +0100 Subject: Move main.go to aws/ --- main.go | 57 --------------------------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 main.go (limited to 'main.go') diff --git a/main.go b/main.go deleted file mode 100644 index b1dcc28..0000000 --- a/main.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright (c) 2019, Grégoire Duchêne -// -// Use of this source code is governed by the ISC license that can be -// found in the LICENSE file. - -// +build linux - -package main - -import ( - "context" - "fmt" - "github.com/aws/aws-lambda-go/events" - "github.com/aws/aws-lambda-go/lambda" - "os" - "path" - "strings" -) - -func getDest(dest, repo string) string { - dest = strings.TrimRight(dest, "/") - return fmt.Sprintf("%s/%s", dest, repo) -} - -func getRepo(pkg, prefix string) string { - prefix = strings.TrimRight(prefix, "/") - path := strings.TrimLeft(strings.TrimPrefix(pkg, prefix), "/") - return strings.Split(path, "/")[0] -} - -func redirect(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) { - var ( - pkg = path.Join(req.Headers["Host"], req.Path) - dest = getDest(os.Getenv("DEST"), getRepo(pkg, os.Getenv("PREFIX"))) - doc = fmt.Sprintf("https://godoc.org/%s", pkg) - vcs = os.Getenv("VCS") - body = fmt.Sprintf(` - -go-import-redirect -`, pkg, vcs, dest) - resp = events.APIGatewayProxyResponse{ - Body: body, - Headers: map[string]string{"Content-Type": "text/html; charset=utf-8"}, - } - ) - if v, ok := req.QueryStringParameters["go-get"]; ok && v == "1" { - resp.StatusCode = 200 - } else { - resp.Headers["Location"] = doc - resp.StatusCode = 302 - } - return resp, nil -} - -func main() { - lambda.Start(redirect) -} -- cgit v1.2.3-70-g09d2