From 0c050372cc95f231f68164ff2d8164d085ea3ccc Mon Sep 17 00:00:00 2001 From: GrĂ©goire DuchĂȘne Date: Mon, 9 Sep 2019 21:18:59 +0100 Subject: Add a version for GCP Cloud Run --- aws/main.go | 31 ++++++------------------------- 1 file changed, 6 insertions(+), 25 deletions(-) (limited to 'aws') diff --git a/aws/main.go b/aws/main.go index b1dcc28..528f9b3 100644 --- a/aws/main.go +++ b/aws/main.go @@ -9,45 +9,26 @@ package main import ( "context" - "fmt" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" - "os" + "go.awhk.org/go-import-redirect/lib" + "net/http" "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, + Body: lib.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 = 200 + resp.StatusCode = http.StatusOK } else { - resp.Headers["Location"] = doc - resp.StatusCode = 302 + resp.Headers["Location"] = "https://godoc.org/" + pkg + resp.StatusCode = http.StatusFound } return resp, nil } -- cgit v1.2.3-70-g09d2