Addressed pr comments
This commit is contained in:
parent
34772f8b6e
commit
7848ee23db
|
@ -7,6 +7,7 @@ import (
|
|||
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
abci "github.com/tendermint/abci/types"
|
||||
"github.com/tendermint/tmlibs/cli"
|
||||
dbm "github.com/tendermint/tmlibs/db"
|
||||
"github.com/tendermint/tmlibs/log"
|
||||
|
@ -16,9 +17,9 @@ import (
|
|||
"github.com/cosmos/cosmos-sdk/version"
|
||||
)
|
||||
|
||||
// gaiadCmd is the entry point for this binary
|
||||
// basecoindCmd is the entry point for this binary
|
||||
var (
|
||||
gaiadCmd = &cobra.Command{
|
||||
basecoindCmd = &cobra.Command{
|
||||
Use: "gaiad",
|
||||
Short: "Gaia Daemon (server)",
|
||||
}
|
||||
|
@ -48,27 +49,28 @@ func defaultOptions(args []string) (json.RawMessage, error) {
|
|||
return json.RawMessage(opts), nil
|
||||
}
|
||||
|
||||
func main() {
|
||||
// TODO: this should somehow be updated on cli flags?
|
||||
// But we need to create the app first... hmmm.....
|
||||
rootDir := os.ExpandEnv("$HOME/.basecoind")
|
||||
|
||||
logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)).With("module", "main")
|
||||
func generateApp(rootDir string, logger log.Logger) abci.Application {
|
||||
db, err := dbm.NewGoLevelDB("basecoin", rootDir)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
bapp := app.NewBasecoinApp(logger, db)
|
||||
return bapp
|
||||
}
|
||||
|
||||
gaiadCmd.AddCommand(
|
||||
server.InitCmd(defaultOptions, bapp.Logger),
|
||||
server.StartCmd(bapp, bapp.Logger),
|
||||
server.UnsafeResetAllCmd(bapp.Logger),
|
||||
func main() {
|
||||
logger := log.NewTMLogger(log.NewSyncWriter(os.Stdout)).With("module", "main")
|
||||
|
||||
basecoindCmd.AddCommand(
|
||||
server.InitCmd(defaultOptions, logger),
|
||||
server.StartCmd(generateApp, logger),
|
||||
server.UnsafeResetAllCmd(logger),
|
||||
version.VersionCmd,
|
||||
)
|
||||
|
||||
// prepare and add flags
|
||||
executor := cli.PrepareBaseCmd(gaiadCmd, "BC", rootDir)
|
||||
rootDir := os.ExpandEnv("$HOME/.basecoind")
|
||||
executor := cli.PrepareBaseCmd(basecoindCmd, "BC", rootDir)
|
||||
executor.Execute()
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ import (
|
|||
// It should work similar to a real app.
|
||||
// Make sure rootDir is empty before running the test,
|
||||
// in order to guarantee consistent results
|
||||
func NewApp(logger log.Logger, rootDir string) (abci.Application, error) {
|
||||
func NewApp(rootDir string, logger log.Logger) (abci.Application, error) {
|
||||
db, err := dbm.NewGoLevelDB("mock", rootDir)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
@ -22,6 +22,6 @@ func SetupApp() (abci.Application, func(), error) {
|
|||
os.RemoveAll(rootDir)
|
||||
}
|
||||
|
||||
app, err := NewApp(logger, rootDir)
|
||||
app, err := NewApp(rootDir, logger)
|
||||
return app, cleanup, err
|
||||
}
|
||||
|
|
|
@ -21,9 +21,13 @@ const (
|
|||
flagAddress = "address"
|
||||
)
|
||||
|
||||
// appGenerator lets us lazily initialize app, using home dir
|
||||
// and other flags (?) to start
|
||||
type appGenerator func(string, log.Logger) (abci.Application, error)
|
||||
|
||||
// StartCmd runs the service passed in, either
|
||||
// stand-alone, or in-process with tendermint
|
||||
func StartCmd(app abci.Application, logger log.Logger) *cobra.Command {
|
||||
func StartCmd(app appGenerator, logger log.Logger) *cobra.Command {
|
||||
start := startCmd{
|
||||
app: app,
|
||||
logger: logger,
|
||||
|
@ -44,10 +48,7 @@ func StartCmd(app abci.Application, logger log.Logger) *cobra.Command {
|
|||
}
|
||||
|
||||
type startCmd struct {
|
||||
// do this in main:
|
||||
// rootDir := viper.GetString(cli.HomeFlag)
|
||||
// node.Logger = ....
|
||||
app abci.Application
|
||||
app appGenerator
|
||||
logger log.Logger
|
||||
}
|
||||
|
||||
|
@ -61,9 +62,15 @@ func (s startCmd) run(cmd *cobra.Command, args []string) error {
|
|||
}
|
||||
|
||||
func (s startCmd) startStandAlone() error {
|
||||
// Start the ABCI listener
|
||||
// Generate the app in the proper dir
|
||||
addr := viper.GetString(flagAddress)
|
||||
svr, err := server.NewServer(addr, "socket", s.app)
|
||||
home := viper.GetString("home")
|
||||
app, err := s.app(home, s.logger)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
svr, err := server.NewServer(addr, "socket", app)
|
||||
if err != nil {
|
||||
return errors.Errorf("Error creating listener: %v\n", err)
|
||||
}
|
||||
|
@ -84,10 +91,16 @@ func (s startCmd) startInProcess() error {
|
|||
return err
|
||||
}
|
||||
|
||||
home := cfg.RootDir
|
||||
app, err := s.app(home, s.logger)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// Create & start tendermint node
|
||||
n, err := node.NewNode(cfg,
|
||||
types.LoadOrGenPrivValidatorFS(cfg.PrivValidatorFile()),
|
||||
proxy.NewLocalClientCreator(s.app),
|
||||
proxy.NewLocalClientCreator(app),
|
||||
node.DefaultGenesisDocProviderFunc(cfg),
|
||||
node.DefaultDBProvider,
|
||||
s.logger.With("module", "node"))
|
||||
|
|
|
@ -22,14 +22,10 @@ func TestStartStandAlone(t *testing.T) {
|
|||
err := initCmd.RunE(nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
rootDir := viper.GetString("home")
|
||||
app, err := mock.NewApp(logger, rootDir)
|
||||
require.NoError(t, err)
|
||||
|
||||
// set up app and start up
|
||||
viper.Set(flagWithTendermint, false)
|
||||
viper.Set(flagAddress, "localhost:11122")
|
||||
startCmd := StartCmd(app, logger)
|
||||
startCmd := StartCmd(mock.NewApp, logger)
|
||||
timeout := time.Duration(3) * time.Second
|
||||
|
||||
err = runOrTimeout(startCmd, timeout)
|
||||
|
@ -46,13 +42,9 @@ func TestStartWithTendermint(t *testing.T) {
|
|||
err := initCmd.RunE(nil, nil)
|
||||
require.NoError(t, err)
|
||||
|
||||
rootDir := viper.GetString("home")
|
||||
app, err := mock.NewApp(logger, rootDir)
|
||||
require.NoError(t, err)
|
||||
|
||||
// set up app and start up
|
||||
viper.Set(flagWithTendermint, true)
|
||||
startCmd := StartCmd(app, logger)
|
||||
startCmd := StartCmd(mock.NewApp, logger)
|
||||
timeout := time.Duration(3) * time.Second
|
||||
|
||||
err = runOrTimeout(startCmd, timeout)
|
||||
|
|
Loading…
Reference in New Issue