blob: 8ef81506e811cdc32c628dd13b3bfe3ec9a35af8 [file] [log] [blame]
// A minimal redirector for b/123 style links to redmine.
package main
import (
"fmt"
"regexp"
"github.com/golang/glog"
"flag"
"net/http"
)
func init() {
flag.Set("logtostderr", "true")
}
var (
flagListen string
flagTarget string
flagProject string
reIssue = regexp.MustCompile(`^/([0-9]+)$`)
)
func main() {
flag.StringVar(&flagListen, "b_listen", "0.0.0.0:8000", "Address to listen at")
flag.StringVar(&flagTarget, "b_target", "issues.hackerspace.pl", "Redmine instance address")
flag.StringVar(&flagProject, "b_project", "hswaw", "Redmine project name")
flag.Parse()
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
scheme := r.URL.Scheme
if scheme == "" {
scheme = "https"
}
if r.URL.Path == "/" {
http.Redirect(w, r, fmt.Sprintf("%s://%s/my/page", scheme, flagTarget), 302)
return
}
if r.URL.Path == "/new" {
http.Redirect(w, r, fmt.Sprintf("%s://%s/projects/%s/issues/new", scheme, flagTarget, flagProject), 302)
return
}
if matches := reIssue.FindStringSubmatch(r.URL.Path); len(matches) == 2 {
num := matches[1]
http.Redirect(w, r, fmt.Sprintf("%s://%s/issues/%s", scheme, flagTarget, num), 302)
return
}
fmt.Fprintf(w, `<!DOCTYPE html>
<title>🅱️</title>
<center><iframe width="1120" height="630" src="https://www.youtube.com/embed/el0PtDvg2AE?start=4994&autoplay=1" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></center>
`)
})
glog.Infof("Listening on %q...", flagListen)
err := http.ListenAndServe(flagListen, nil)
if err != nil {
glog.Exit(err)
}
}