cosmos-sdk/cosmovisor/cmd/main.go

32 lines
688 B
Go

package main
import (
"fmt"
"os"
cosmovisor "github.com/cosmos/cosmos-sdk/cosmovisor"
)
func main() {
err := Run(os.Args[1:])
if err != nil {
fmt.Printf("%+v\n", err)
os.Exit(1)
}
}
// Run is the main loop, but returns an error
func Run(args []string) error {
cfg, err := cosmovisor.GetConfigFromEnv()
if err != nil {
return err
}
doUpgrade, err := cosmovisor.LaunchProcess(cfg, args, os.Stdout, os.Stderr)
// if RestartAfterUpgrade, we launch after a successful upgrade (only condition LaunchProcess returns nil)
for cfg.RestartAfterUpgrade && err == nil && doUpgrade {
doUpgrade, err = cosmovisor.LaunchProcess(cfg, args, os.Stdout, os.Stderr)
}
return err
}