package main import ( "log" "os" "tildegit.org/tjp/sliderule/gemini" "tildegit.org/tjp/sliderule/logging" ) func main() { conf := configure() gemTLS, err := gemini.FileTLS(conf.tlsCertFile, conf.tlsKeyFile) if err != nil { log.Fatal(err) } dropped, err := dropPrivileges() if err != nil { log.Fatal(err) } ctx, _, info, warn, errlog := serverContext() if !dropped { _ = warn.Log("msg", "dropping privileges to 'nobody' failed") } handler := logging.LogRequests(info)(geminiRouter(conf)) server, err := gemini.NewServer( ctx, conf.hostname, "tcp", "127.0.0.1:1965", handler, errlog, gemTLS, ) if err != nil { _ = errlog.Log("msg", "error building server", "error", err) os.Exit(1) } if err := server.Serve(); err != nil { _ = errlog.Log("msg", "error serving gemini", "error", err) os.Exit(1) } }