func daemon(c *cobra.Command, a []string) { m := macaron.New() setting.NewContext(c) err := models.NewEngine() m.Use(middleware.Contexter()) m.Use(macaron.Recovery()) m.Use(macaron.Logger()) m.Use(macaron.Renderer( macaron.RenderOptions{ Directory: "templates", TemplateFileSystem: bindata.Templates(bindata.Options{ Asset: templates.Asset, AssetDir: templates.AssetDir, AssetNames: templates.AssetNames, AssetInfo: templates.AssetInfo, Prefix: "", }), }, )) m.Use(macaron.Static("web/images", macaron.StaticOptions{ Prefix: "images", FileSystem: bindata.Static(bindata.Options{ Asset: web.Asset, AssetDir: web.AssetDir, AssetNames: web.AssetNames, AssetInfo: web.AssetInfo, Prefix: "web/images", }), }, )) m.Use(macaron.Static("web/template", macaron.StaticOptions{ Prefix: "template", FileSystem: bindata.Static(bindata.Options{ Asset: web.Asset, AssetDir: web.AssetDir, AssetNames: web.AssetNames, AssetInfo: web.AssetInfo, Prefix: "web/template", }), }, )) m.Use(macaron.Static("web", macaron.StaticOptions{ FileSystem: bindata.Static(bindata.Options{ Asset: web.Asset, AssetDir: web.AssetDir, AssetNames: web.AssetNames, AssetInfo: web.AssetInfo, Prefix: "web", }), Prefix: viper.GetString("version"), }, )) m.Get("/assets/html/user/views/oauth.html", user.OauthHandler) m.Combo("/api/oauth"). Get(user.OauthUrl). Post(binding.Json(auth.Oauth2{}), user.OauthLogin) m.Post("/api/login", binding.Json(auth.SignIn{}), user.SignIn) m.Post("/api/register", binding.Json(auth.SignUp{}), user.SignUp) m.Group("/api", func() { m.Get("/boards", middleware.Datasource(), board.ListBoards) m.Post("/boards/configure", middleware.Datasource(), binding.Json(models.BoardRequest{}), board.Configure) m.Get("/board", middleware.Datasource(), board.ItemBoard) m.Get("/labels", middleware.Datasource(), board.ListLabels) m.Get("/cards", middleware.Datasource(), board.ListCards) m.Combo("/milestones"). Get(middleware.Datasource(), board.ListMilestones). Post(middleware.Datasource(), binding.Json(models.MilestoneRequest{}), board.CreateMilestone) m.Get("/users", middleware.Datasource(), board.ListMembers) m.Combo("/comments"). Get(middleware.Datasource(), board.ListComments). Post(middleware.Datasource(), binding.Json(models.CommentRequest{}), board.CreateComment) m.Combo("/card"). Post(middleware.Datasource(), binding.Json(models.CardRequest{}), board.CreateCard). Put(middleware.Datasource(), binding.Json(models.CardRequest{}), board.UpdateCard). Delete(middleware.Datasource(), binding.Json(models.CardRequest{}), board.DeleteCard) m.Put("/card/move", middleware.Datasource(), binding.Json(models.CardRequest{}), board.MoveToCard) }, middleware.Auther()) m.Get("/*", routers.Home) m.Get("/ws/", sockets.Messages(), ws.ListenAndServe) listen := viper.GetString("server.listen") log.Printf("Listen: %s", listen) err = http.ListenAndServe(listen, m) if err != nil { log.Fatalf("Failed to start: %s", err) } }
// +build bindata package modules import ( "github.com/codeskyblue/file-server/public" "github.com/codeskyblue/file-server/templates" "github.com/go-macaron/bindata" "gopkg.in/macaron.v1" ) var Public = macaron.Static("public", macaron.StaticOptions{ Prefix: "-", FileSystem: bindata.Static(bindata.Options{ Asset: public.Asset, AssetDir: public.AssetDir, AssetNames: public.AssetNames, Prefix: "", }), }) var Renderer = macaron.Renderer(macaron.RenderOptions{ TemplateFileSystem: bindata.Templates(bindata.Options{ Asset: templates.Asset, AssetDir: templates.AssetDir, AssetNames: templates.AssetNames, Prefix: "", }), })