Skip to content

Commit

Permalink
Validation, start of the wizard
Browse files Browse the repository at this point in the history
  • Loading branch information
tjayrush committed Jan 17, 2025
1 parent f5c90cc commit 3171b95
Show file tree
Hide file tree
Showing 24 changed files with 716 additions and 796 deletions.
12 changes: 9 additions & 3 deletions app/action_config_edit.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,21 @@ package app
import (
"fmt"
"os"
"os/exec"

coreFile "github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/file"
_ "github.com/TrueBlocks/trueblocks-khedra/v2/pkg/env"
"github.com/TrueBlocks/trueblocks-khedra/v2/pkg/types"
"github.com/urfave/cli/v2"
)

func (k *KhedraApp) configEditAction(c *cli.Context) error {
_ = c // liinter
k.ConfigMaker()
_ = c // linter
fn := types.GetConfigFnNoCreate()
if !coreFile.FileExists(fn) {
return fmt.Errorf("not initialized you must run `khedra init` first")
}

editor := os.Getenv("EDITOR")
if editor == "" {
return fmt.Errorf("EDITOR environment variable not set")
Expand All @@ -20,7 +26,7 @@ func (k *KhedraApp) configEditAction(c *cli.Context) error {
return nil
}
configPath := types.GetConfigFn()
cmd := execCommand(editor, configPath)
cmd := exec.Command(editor, configPath)
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
Expand Down
10 changes: 8 additions & 2 deletions app/action_config_show.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,20 @@ package app
import (
"fmt"

coreFile "github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/file"
_ "github.com/TrueBlocks/trueblocks-khedra/v2/pkg/env"
"github.com/TrueBlocks/trueblocks-khedra/v2/pkg/types"
"github.com/urfave/cli/v2"
"gopkg.in/yaml.v2"
)

func (k *KhedraApp) configShowAction(c *cli.Context) error {
_ = c // liinter
k.ConfigMaker()
_ = c // linter
fn := types.GetConfigFnNoCreate()
if !coreFile.FileExists(fn) {
return fmt.Errorf("not initialized you must run `khedra init` first")
}

cfg, err := LoadConfig()
if err != nil {
return fmt.Errorf("failed to load config: %w", err)
Expand Down
27 changes: 23 additions & 4 deletions app/action_daemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,36 @@ import (
"os"
"time"

coreFile "github.com/TrueBlocks/trueblocks-core/src/apps/chifra/pkg/file"
_ "github.com/TrueBlocks/trueblocks-khedra/v2/pkg/env"
"github.com/TrueBlocks/trueblocks-khedra/v2/pkg/types"
"github.com/TrueBlocks/trueblocks-khedra/v2/pkg/validate"
"github.com/urfave/cli/v2"
)

func (k *KhedraApp) daemonAction(c *cli.Context) error {
_ = c // liinter
k.ConfigMaker()
_ = c // linter
fn := types.GetConfigFnNoCreate()
if !coreFile.FileExists(fn) {
return fmt.Errorf("not initialized you must run `khedra init` first")
}

_, err := k.ConfigMaker()
if err != nil {
return fmt.Errorf("failed to load config: %w", err)
}

for _, chain := range k.config.Chains {
for _, rpc := range chain.RPCs {
if err := validate.TryConnect(chain.Name, rpc, 5); err != nil {
return err
}
}
}
fmt.Printf("Sleeping for 10 seconds")
cnt := 0
for {
if cnt >= 10 {
if cnt >= 1 {
break
}
cnt++
Expand All @@ -26,7 +45,7 @@ func (k *KhedraApp) daemonAction(c *cli.Context) error {
}
fmt.Println(".")

// if _, proceed, err := app.LoadConfig(); !proceed {
// if _, proceed, err := app.Load Config(); !proceed {
// return
// } else if err != nil {
// k.Fatal(err.Error())
Expand Down
23 changes: 20 additions & 3 deletions app/action_init.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,30 @@ package app
import (
"fmt"

"github.com/TrueBlocks/trueblocks-khedra/v2/app/wizard"
"github.com/urfave/cli/v2"
)

func (k *KhedraApp) initAction(c *cli.Context) error {
_ = c // liinter
k.ConfigMaker()
fmt.Println("Initializing Khedra...")
_ = c // linter
if _, err := k.ConfigMaker(); err != nil {
return fmt.Errorf("failed to load config: %w", err)
}

steps := []wizard.Step{
{Name: "Welcome", Prompt: "Welcome to Khedra. We're going to walk you through.", Metadata: map[string]interface{}{"default": "yes"}},
{Name: "General", Prompt: "Where do you want to store your data?", Metadata: map[string]interface{}{"default": "25"}},
{Name: "Services", Prompt: "There are four services. Which do you want to enable?", Metadata: map[string]interface{}{"default": "25"}},
{Name: "Chains", Prompt: "Which chains do you want to support?", Metadata: map[string]interface{}{"default": "New York"}},
{Name: "Logging", Prompt: "What logging options do you want to enable?", Metadata: map[string]interface{}{"default": "New York"}},
}

w := wizard.NewWizard(steps, ">")

if err := w.Run(); err != nil {
return err
}

return nil
}

Expand Down
2 changes: 1 addition & 1 deletion app/actions_version.go → app/action_version.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
)

func (k *KhedraApp) versionAction(c *cli.Context) error {
_ = c // liinter
_ = c // linter
fmt.Println("khedra version " + sdk.Version())
return nil
}
88 changes: 0 additions & 88 deletions app/actions.go

This file was deleted.

6 changes: 3 additions & 3 deletions app/app.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package app

import (
"log"
"log/slog"
"os"

Expand All @@ -21,11 +20,12 @@ func (k *KhedraApp) Run() {
k.cli.Run(os.Args)
}

func (k *KhedraApp) ConfigMaker() {
func (k *KhedraApp) ConfigMaker() (types.Config, error) {
cfg, err := LoadConfig()
if err != nil {
log.Fatalf("failed to load config: %v", err)
return types.Config{}, err
}
k.config = &cfg
k.fileLogger, k.progLogger = types.NewLoggers(cfg.Logging)
return cfg, nil
}
Loading

0 comments on commit 3171b95

Please sign in to comment.