mirror of https://github.com/perkeep/perkeep.git
59 lines
1.3 KiB
Go
59 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"camli/auth"
|
|
"camli/http_util"
|
|
"camli/webserver"
|
|
"flag"
|
|
"fmt"
|
|
"http"
|
|
"os"
|
|
)
|
|
|
|
var gpgPath *string = flag.String("gpg-path", "/usr/bin/gpg", "Path to the gpg binary.")
|
|
|
|
var flagRing *string = flag.String("keyring", "./test/test-keyring.gpg",
|
|
"GnuPG public keyring file to use.")
|
|
|
|
var flagSecretRing *string = flag.String("secret-keyring", "./test/test-secring.gpg",
|
|
"GnuPG secret keyring file to use.")
|
|
|
|
var accessPassword string
|
|
|
|
func handleRoot(conn http.ResponseWriter, req *http.Request) {
|
|
fmt.Fprintf(conn, "camsigd")
|
|
}
|
|
|
|
func handleCamliSig(conn http.ResponseWriter, req *http.Request) {
|
|
handler := func (conn http.ResponseWriter, req *http.Request) {
|
|
http_util.BadRequestError(conn, "Unsupported path or method.")
|
|
}
|
|
|
|
switch req.Method {
|
|
case "POST":
|
|
switch req.URL.Path {
|
|
case "/camli/sig/sign":
|
|
handler = auth.RequireAuth(handleSign)
|
|
case "/camli/sig/verify":
|
|
handler = handleVerify
|
|
}
|
|
}
|
|
handler(conn, req)
|
|
}
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
|
|
auth.AccessPassword = os.Getenv("CAMLI_PASSWORD")
|
|
if len(auth.AccessPassword) == 0 {
|
|
fmt.Fprintf(os.Stderr,
|
|
"No CAMLI_PASSWORD environment variable set.\n")
|
|
os.Exit(1)
|
|
}
|
|
|
|
ws := webserver.New()
|
|
ws.HandleFunc("/", handleRoot)
|
|
ws.HandleFunc("/camli/sig/", handleCamliSig)
|
|
ws.Serve()
|
|
}
|