aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorGrégoire Duchêne <gduchene@awhk.org>2021-07-04 15:33:18 +0100
committerGrégoire Duchêne <gduchene@awhk.org>2021-07-04 15:33:18 +0100
commit80b5a6680e2fc4d2f1e425ff2e5f1cfbbd529d9e (patch)
tree6286c7d490ebfe4b8c1013dbb2807e8c55e0d71d /cmd
parent8c5aaad11e949adfd1545b7802899b81f7d74ed5 (diff)
Simplify project structure
Diffstat (limited to 'cmd')
-rw-r--r--cmd/go-import-redirect/main.go87
-rw-r--r--cmd/go-import-redirect/main_aws.go40
2 files changed, 0 insertions, 127 deletions
diff --git a/cmd/go-import-redirect/main.go b/cmd/go-import-redirect/main.go
deleted file mode 100644
index ea994b2..0000000
--- a/cmd/go-import-redirect/main.go
+++ /dev/null
@@ -1,87 +0,0 @@
-// 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
-
-package main
-
-import (
- "context"
- "fmt"
- "log"
- "net"
- "net/http"
- "os"
- "os/signal"
- "path"
- "time"
-
- "golang.org/x/sys/unix"
-
- "go.awhk.org/go-import-redirect/internal"
-)
-
-func redirect(resp http.ResponseWriter, req *http.Request) {
- if req.Method != http.MethodGet {
- resp.Header().Set("Allow", http.MethodGet)
- resp.WriteHeader(http.StatusMethodNotAllowed)
- return
- }
-
- pkg := path.Join(req.Host, req.URL.Path)
- resp.Header().Set("Content-Type", "text/html; charset=utf-8")
- if req.URL.Query().Get("go-get") == "1" {
- resp.WriteHeader(http.StatusOK)
- } else {
- resp.Header().Set("Location", "https://pkg.go.dev/"+pkg)
- resp.WriteHeader(http.StatusFound)
- }
- if _, err := fmt.Fprint(resp, internal.GetBody(pkg)); err != nil {
- log.Println("fmt.Fprint:", err)
- }
-}
-
-func main() {
- mux := http.NewServeMux()
- mux.HandleFunc("/", redirect)
- srv := http.Server{Handler: mux}
-
- done := make(chan os.Signal, 1)
- signal.Notify(done, os.Interrupt, unix.SIGTERM)
-
- go func() {
- var (
- addr = os.Getenv("ADDR")
- l net.Listener
- err error
- )
- if addr != "" && addr[0] == '/' {
- if l, err = net.Listen("unix", addr); err != nil {
- log.Fatalln("net.Listen:", err)
- }
- // We do not do any authorization anyway, so 0666 makes sense here.
- if err = os.Chmod(addr, 0666); err != nil {
- log.Fatalln("os.Chmod:", err)
- }
- } else {
- if addr == "" {
- addr = ":8080"
- }
- if l, err = net.Listen("tcp", addr); err != nil {
- log.Fatalln("net.Listen:", err)
- }
- }
- if err = srv.Serve(l); err != nil && err != http.ErrServerClosed {
- log.Fatalln("server.ListenAndServe:", err)
- }
- }()
-
- <-done
- ctx, cancel := context.WithTimeout(context.Background(), time.Second)
- defer cancel()
- if err := srv.Shutdown(ctx); err != nil && err != http.ErrServerClosed {
- log.Fatalln("server.Shutdown:", err)
- }
-}
diff --git a/cmd/go-import-redirect/main_aws.go b/cmd/go-import-redirect/main_aws.go
deleted file mode 100644
index 4d4b0e7..0000000
--- a/cmd/go-import-redirect/main_aws.go
+++ /dev/null
@@ -1,40 +0,0 @@
-// 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"
-
- "go.awhk.org/go-import-redirect/internal"
-)
-
-func redirect(ctx context.Context, req events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
- var (
- pkg = path.Join(req.Headers["Host"], req.Path)
- resp = events.APIGatewayProxyResponse{
- Body: internal.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)
-}