func EnvAction(c *cli.Context) { // Bootstrap the environment env, err := envy.Bootstrap() if err != nil { logger.Fatalln(err) } for k, v := range env { fmt.Printf("%s: %s\n", k, v) } }
func MainAction(c *cli.Context) { port := c.GlobalInt("port") appPort := strconv.Itoa(c.GlobalInt("appPort")) immediate = c.GlobalBool("immediate") // Bootstrap the environment envy.Bootstrap() // Set the PORT env os.Setenv("PORT", appPort) wd, err := os.Getwd() if err != nil { logger.Fatal(err) } //2015/09/05 steafan.zan: add main to Builder. builder := gin.NewBuilder(c.GlobalString("path"), c.GlobalString("main"), c.GlobalString("bin"), c.GlobalBool("godep")) runner := gin.NewRunner(filepath.Join(wd, builder.Binary()), c.Args()...) runner.SetWriter(os.Stdout) proxy := gin.NewProxy(builder, runner) config := &gin.Config{ Port: port, ProxyTo: "http://localhost:" + appPort, } err = proxy.Run(config) if err != nil { logger.Fatal(err) } logger.Printf("listening on port %d\n", port) shutdown(runner) // build right now build(builder, runner, logger) // scan for changes scanChanges(c.GlobalString("path"), func(path string) { runner.Kill() build(builder, runner, logger) }) }