Created
February 7, 2017 18:05
-
-
Save asm-jaime/6c1469d3546a5813cb153cb946087dec to your computer and use it in GitHub Desktop.
gin server for development which custom settings. (start inside frontend project: go run gin.dev.server.go start 9090 ./build)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"fmt" | |
"os" | |
"github.com/gin-gonic/contrib/static" | |
"github.com/gin-gonic/gin" | |
) | |
type Server struct{} | |
type Config struct { | |
StaticFolder string | |
Port string | |
} | |
func (config *Config) SetDefault() { | |
config.Port = "3000" | |
config.StaticFolder = "./public" | |
} | |
// NewEngine return the new gin server | |
func (server *Server) NewEngine(config *Config) { | |
router := gin.Default() | |
// router | |
router.Use(gin.Logger()) | |
router.Use(gin.Recovery()) | |
// all frontend | |
fmt.Print("static folder:\n") | |
fmt.Print(config.StaticFolder) | |
fmt.Print("\n") | |
router.Use(static.Serve("/", static.LocalFile(config.StaticFolder, true))) | |
router.Run(":" + config.Port) | |
} | |
func startServer(args []string) { | |
// set config | |
config := Config{} | |
config.SetDefault() | |
if len(args) > 1 { // set port | |
config.Port = args[2] | |
} | |
if len(args) > 2 { // set static folder | |
config.StaticFolder = args[3] | |
} | |
// start server | |
server := Server{} | |
server.NewEngine(&config) | |
} | |
func main() { | |
args := os.Args | |
if (len(args) > 1) && args[1] == "start" { | |
startServer(args) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment