func build(pkg, dest, version, buildOS, buildArch string) { buildTime := time.Now().Format(time.RFC3339) timeFlag := fmt.Sprintf("-X github.com/stellar/go/support/app.buildTime=%s", buildTime) versionFlag := fmt.Sprintf("-X github.com/stellar/go/support/app.version=%s", version) if buildOS == "windows" { dest = dest + ".exe" } cmd := exec.Command("go", "build", "-o", dest, "-ldflags", fmt.Sprintf("%s %s", timeFlag, versionFlag), pkg, ) cmd.Stderr = os.Stderr cmd.Stdout = os.Stdout cmd.Env = append( os.Environ(), fmt.Sprintf("GOOS=%s", buildOS), fmt.Sprintf("GOARCH=%s", buildArch), ) log.Infof("building %s", pkg) log.Infof("running: %s", strings.Join(cmd.Args, " ")) err := cmd.Run() if err != nil { panic(err) } }
// utility command to run the provided command that echoes any output. A failed // command will trigger a panic. func run(name string, args ...string) { cmd := exec.Command(name, args...) cmd.Stderr = os.Stderr cmd.Stdout = os.Stdout log.Infof("running: %s %s", name, strings.Join(args, " ")) err := cmd.Run() if err != nil { panic(err) } }
func run(cmd *cobra.Command, args []string) { var ( cfg Config cfgPath = cmd.PersistentFlags().Lookup("conf").Value.String() ) log.SetLevel(log.InfoLevel) err := config.Read(cfgPath, &cfg) if err != nil { switch cause := errors.Cause(err).(type) { case *config.InvalidConfigError: log.Error("config file: ", cause) default: log.Error(err) } os.Exit(1) } driver, err := initDriver(cfg) if err != nil { log.Error(err) os.Exit(1) } mux := initMux(driver) addr := fmt.Sprintf("0.0.0.0:%d", cfg.Port) http.Run(http.Config{ ListenAddr: addr, Handler: mux, OnStarting: func() { log.Infof("starting federation server - %s", app.Version()) log.Infof("listening on %s", addr) }, }) }