47 lines
1.2 KiB
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"))
|
|
}
|
|
|
|
}
|