func servePublic(c *gin.Context) { path := c.Request.URL.Path if strings.HasPrefix(path, "/api") { c.Next() return } if !strings.HasPrefix(path, "/public") { if len(strings.Split(path, ".")) > 1 { c.AbortWithStatus(404) return } path = "/public/html/index.html" } path = strings.Replace(path, "/", "", 1) split := strings.Split(path, ".") suffix := split[len(split)-1] res, err := util.Asset(path) if err != nil { c.Next() return } contentType := "text/plain" switch suffix { case "png": contentType = "image/png" case "jpg", "jpeg": contentType = "image/jpeg" case "gif": contentType = "image/gif" case "js": contentType = "application/javascript" case "css": contentType = "text/css" case "woff": contentType = "application/x-font-woff" case "ttf": contentType = "application/x-font-ttf" case "otf": contentType = "application/x-font-otf" case "html": contentType = "text/html" } c.Writer.Header().Set("content-type", contentType) c.String(200, string(res)) }
func (version *DBVersion) TryRollback() { fmt.Printf("Rolling back %s (time: %v)...\n", version.HumanoidVersion(), time.Now()) if _, err := util.Asset(version.GetErrPath()); err != nil { fmt.Println("Rollback SQL doesn't exist.") fmt.Println() return } sql := version.GetSQL(version.GetErrPath()) for _, query := range sql { fmt.Printf(" [ROLLBACK] > %v\n", query) if _, err := Mysql.Exec(query); err != nil { fmt.Println(" [ROLLBACK] - Stopping") return } } }