36 lines
693 B
Go
36 lines
693 B
Go
package web
|
|
|
|
import (
|
|
"net"
|
|
"net/http"
|
|
"os"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
// InitRouter starts the router
|
|
func InitRouter() {
|
|
router := gin.Default()
|
|
router.POST("/e/", encode)
|
|
router.GET("/r/:short", redirect)
|
|
router.GET("/d/:short", decode)
|
|
router.GET("/i/:short", info)
|
|
router.GET("/f/:short", getFile)
|
|
|
|
if viper.GetBool("UseSocket") {
|
|
listener, err := net.Listen("unix", viper.GetString("BindSocket"))
|
|
if err != nil {
|
|
return
|
|
}
|
|
os.Chmod(viper.GetString("BindSocket"), 0775)
|
|
defer listener.Close()
|
|
defer os.Remove(viper.GetString("BindSocket"))
|
|
|
|
http.Serve(listener, router)
|
|
} else {
|
|
router.Run(viper.GetString("BindAddress"))
|
|
}
|
|
|
|
}
|