ShortDragon/main.go

47 lines
1.2 KiB
Go

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"))
}
}