From 13e9cc48fa720755dfbb4b3b3e81e25b69ebdcfb Mon Sep 17 00:00:00 2001 From: Ethan Reesor Date: Sat, 13 Jul 2024 19:43:55 -0500 Subject: [PATCH] Devnet soft reset --- .vscode/launch.json | 1 + cmd/accumulated/cmd_init_devnet.go | 33 +++++++++++++++++++----------- cmd/accumulated/cmd_run_devnet.go | 2 ++ 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 263109259..156923018 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -152,6 +152,7 @@ "args": [ "run", "devnet", "-w=${workspaceFolder}/.nodes/devnet", + "--soft-reset", "-b=1", "-v=1", "-f=0", diff --git a/cmd/accumulated/cmd_init_devnet.go b/cmd/accumulated/cmd_init_devnet.go index c0b18ecab..6ac667c4d 100644 --- a/cmd/accumulated/cmd_init_devnet.go +++ b/cmd/accumulated/cmd_init_devnet.go @@ -58,20 +58,29 @@ func initDevNet(cmd *cobra.Command) *run.Config { cmd.Flag("validators").Changed && dev.Validators != uint64(flagRunDevnet.NumValidators) || cmd.Flag("followers").Changed && dev.Followers != uint64(flagRunDevnet.NumFollowers) || cmd.Flag("globals").Changed && !flagRunDevnet.Globals.Equal(dev.Globals) - if wantReset && !flagMain.Reset { - if !term.IsTerminal(int(os.Stdout.Fd())) || !term.IsTerminal(int(os.Stderr.Fd())) { - fatalf("the configuration and flags do not match; use --reset if you wish to override (and reset) the existing configuration") - } - fmt.Fprint(os.Stderr, "Configuration and flags do not match. Reset? [yN] ") - s, err := bufio.NewReader(os.Stdin).ReadString('\n') - check(err) - s = strings.TrimSpace(s) - s = strings.ToLower(s) - switch s { - case "y", "yes": + if wantReset { + switch { + case flagMain.Reset: + // Ok + + case flagRunDevnet.SoftReset: flagMain.Reset = true + + case term.IsTerminal(int(os.Stdin.Fd())): + fmt.Fprint(os.Stderr, "Configuration and flags do not match. Reset? [yN] ") + s, err := bufio.NewReader(os.Stdin).ReadString('\n') + check(err) + s = strings.TrimSpace(s) + s = strings.ToLower(s) + switch s { + case "y", "yes": + flagMain.Reset = true + default: + os.Exit(0) + } + default: - os.Exit(0) + fatalf("the configuration and flags do not match; use --reset if you wish to override (and reset) the existing configuration") } } diff --git a/cmd/accumulated/cmd_run_devnet.go b/cmd/accumulated/cmd_run_devnet.go index 126608a63..bdb5aadbf 100644 --- a/cmd/accumulated/cmd_run_devnet.go +++ b/cmd/accumulated/cmd_run_devnet.go @@ -40,6 +40,7 @@ var flagRunDevnet = struct { BasePort int Globals network.GlobalValues Logging run.Logging + SoftReset bool }{ Globals: network.GlobalValues{ ExecutorVersion: protocol.ExecutorVersionLatest, @@ -66,6 +67,7 @@ func init() { cmdRunDevnet.Flags().StringVar(&flagRunDevnet.Database, "database", "", "The type of database to use") cmdRunDevnet.Flags().Var(cmdutil.JsonFlagOf(&flagRunDevnet.Globals), "globals", "Override the default global values") cmdRunDevnet.Flags().Var(cmdutil.JsonFlagOf(&flagRunDevnet.Logging), "logging", "Override the default logger configuration") + cmdRunDevnet.Flags().BoolVar(&flagRunDevnet.SoftReset, "soft-reset", false, "Reset only if necessary") setRunFlags(cmdRunDevnet)