package main import ( "log" "git.1750studios.com/ToddShepard/ShortDragon/database" "git.1750studios.com/ToddShepard/ShortDragon/routes" "github.com/gin-gonic/gin" "github.com/spf13/viper" ) func main() { // Configuration viper.SetDefault("DBType", "postgres") viper.SetDefault("DBConnection", "host=localhost user=shortdragon dbname=shortdragon sslmode=disable") viper.SetDefault("UseSocket", false) viper.SetDefault("BindAddress", ":8080") viper.SetDefault("BindSocket", "/var/run/shortdragon.sock") viper.SetDefault("DefaultURL", "https://1750studios.com") viper.SetDefault("ShortURL", "https://1750.st") viper.SetConfigName("config") viper.AddConfigPath("/etc/shortdragon/") viper.AddConfigPath("$HOME/.shortdragon/") viper.AddConfigPath(".") err := viper.ReadInConfig() if err != nil { log.Fatal("Could not read config:", err) } database.InitDb(viper.GetString("DBType"), viper.GetString("DBConnection")) router := gin.Default() router.POST("/e/", routes.Encode) router.GET("/r/:short", routes.Redirect) router.GET("/d/:short", routes.Decode) router.GET("/i/:short", routes.Info) if viper.GetBool("UseSocket") { router.RunUnix(viper.GetString("BindSocket")) } else { router.Run(viper.GetString("BindAddress")) } }