diff options
author | EuAndreh <eu@euandre.org> | 2024-11-10 11:19:53 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-11-14 00:26:16 -0300 |
commit | 383ff6b6069e757e17cccd5f36dfffec3ae22c8a (patch) | |
tree | e29f2553c3315bbbc51a1393d7e2cab7f962af59 | |
parent | mkdeps.sh: Update to simplified code with same behaviour (diff) | |
download | glaze-383ff6b6069e757e17cccd5f36dfffec3ae22c8a.tar.gz glaze-383ff6b6069e757e17cccd5f36dfffec3ae22c8a.tar.xz |
src/glaze.go: Add simplistic -X redirect implementation
-rw-r--r-- | src/glaze.go | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/glaze.go b/src/glaze.go index 5ab635f..2644211 100644 --- a/src/glaze.go +++ b/src/glaze.go @@ -261,7 +261,7 @@ func handlerFor(path string) http.HandlerFunc { }) } -func (i *patternPath) String() string { +func (_ *patternPath) String() string { return "" } @@ -286,17 +286,29 @@ func (_ *patternPath) Set(value string) error { func parseArgs(args []string) string { var pat patternPath + redirect := false + fs := flag.NewFlagSet(args[0], flag.ExitOnError) - fs.Var(&pat, "P", "") + fs.Var(&pat, "P", "FIXME") + fs.BoolVar(&redirect, "X", false, "FIXME") fs.Parse(args[1:]) if fs.NArg() != 1 { fmt.Fprintf( os.Stderr, - "Usage: %s [ -P PATTERN:PATH ]... LISTEN.socket\n", + "Usage: %s ([ -P PATTERN:PATH ]... | -X) " + + "LISTEN.socket\n", args[0], ) os.Exit(2) } + + if redirect { + http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + target := "https://" + r.Host + r.RequestURI + http.Redirect(w, r, target, http.StatusMovedPermanently) + }) + } + return fs.Arg(0) } |