guildgate/main.go

50 lines
1.4 KiB
Go
Raw Normal View History

2020-08-20 12:51:02 -04:00
package main
import (
"log"
"net/http"
"text/template"
2020-09-22 14:37:54 -04:00
"github.com/gorilla/mux"
"github.com/gorilla/securecookie"
2020-08-20 12:51:02 -04:00
)
2020-08-20 13:24:52 -04:00
var Conf *Config
var tpl *template.Template
var cookieHandler = securecookie.New(
securecookie.GenerateRandomKey(64),
securecookie.GenerateRandomKey(32))
2020-08-20 12:51:02 -04:00
func main() {
2020-08-20 13:24:52 -04:00
Conf, _ = LoadConfig()
2020-08-20 12:51:02 -04:00
log.Println("Loaded config")
2020-09-22 14:37:54 -04:00
router := mux.NewRouter().StrictSlash(true)
router.HandleFunc("/", homePage).Methods("GET")
router.HandleFunc("/register", signupPage).Methods("GET")
router.HandleFunc("/register", signup).Methods("POST")
router.HandleFunc("/login", loginPage).Methods("GET")
router.HandleFunc("/login", login).Methods("POST")
router.HandleFunc("/logout", logoutPage).Methods("GET")
router.HandleFunc("/token", tokenPage).Methods("GET")
log.Printf("Registering templates from %v/\n", Conf.TplPath)
tpl = template.Must(template.ParseGlob(Conf.TplPath + "/*.html"))
2020-08-20 13:24:52 -04:00
log.Printf("Guildgate starting on %v\n", Conf.Port)
2020-08-27 12:45:00 -04:00
var err error
2020-08-23 17:53:48 -04:00
if Conf.Tls {
2020-08-27 12:45:00 -04:00
log.Printf("Starting TLS\n")
if Conf.Cert == "" {
log.Fatalf("Need to specify a certificate if using TLS!\n")
} else if Conf.Key == "" {
log.Fatalf("Need to specify a private key is usingTLS!\n")
} else {
2020-09-22 14:37:54 -04:00
err = http.ListenAndServeTLS(":"+Conf.Port, Conf.Cert, Conf.Key, router)
2020-08-27 12:45:00 -04:00
}
2020-08-23 17:53:48 -04:00
} else {
2020-08-27 12:45:00 -04:00
log.Printf("Starting unencrypted\n")
2020-09-22 14:37:54 -04:00
err = http.ListenAndServe(":"+Conf.Port, router)
2020-08-27 12:45:00 -04:00
}
if err != nil {
log.Printf("HTTP server failed with %v\n", err)
2020-08-23 17:53:48 -04:00
}
2020-08-20 12:51:02 -04:00
}