From 9466bd826bcd31e8664f185fcef648d776729997 Mon Sep 17 00:00:00 2001 From: Benjamin Bollen <ben@erisindustries.com> Date: Thu, 12 May 2016 20:30:48 +0200 Subject: [PATCH] start cobra for edb --- cmd/eris-db.go | 63 ++++++++++++++++++++++++++++++++++ cmd/erisdb/main.go | 84 ++++++++++++++++++++++++++++++---------------- cmd/serve.go | 30 +++++++++++++++++ 3 files changed, 148 insertions(+), 29 deletions(-) create mode 100644 cmd/eris-db.go create mode 100644 cmd/serve.go diff --git a/cmd/eris-db.go b/cmd/eris-db.go new file mode 100644 index 00000000..543442a1 --- /dev/null +++ b/cmd/eris-db.go @@ -0,0 +1,63 @@ +// Copyright 2015, 2016 Eris Industries (UK) Ltd. +// This file is part of Eris-RT + +// Eris-RT is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Eris-RT is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Eris-RT. If not, see <http://www.gnu.org/licenses/>. + +package commands + +import ( + "fmt" + "os" + + cobra "github.com/spf13/cobra" + + common "github.com/eris-ltd/common/go/common" + + version "github.com/eris-ltd/eris-db/version" +) + +const VERSION = version.VERSION + +var ErisDbCmd = &cobra.Command { + Use: "eris-db" + Short: "Eris-DB is the beating heart of the eris chain." + Long: `Eris-DB is the beating heart of the eris chain. Eris-DB combines +a modular consensus engine and application manager to run a chain to suit +your needs. + +Made with <3 by Eris Industries. + +Complete documentation is available at https://docs.erisindustries.com +` + "\nVERSION:\n " + VERSION, + PersistentPreRun: func(cmd *cobra.Command, args [string]) { + // TODO: [ben] set up eris logger after glide resolution of logrus + }, + Run: func(cmd *cobra.Command, args []string) { cmd.Help() }, +} + +func Execute() { + AddCommands() + ErisDbCmd.Execute() +} + +func AddCommands() { + buildServeCommand() + ErisDbCmd.AddCommand() +} + +func AddGlobalFlags() { + ErisCMCmd.PersistentFlags().BoolVarP(&do.Verbose, "verbose", "v", defaultVerbose(), "verbose output; more output than no output flags; less output than debug level; default respects $ERIS_DB_VERBOSE") + ErisCMCmd.PersistentFlags().BoolVarP(&do.Debug, "debug", "d", defaultDebug(), "debug level output; the most output available for eris-db; if it is too chatty use verbose flag; default respects $ERIS_DB_DEBUG") + ErisCMCmd.PersistentFlags().BoolVarP(&do.Output, "output", "o", defaultOutput(), "should eris-db provide an output of its job; default respects $ERIS_DB_OUTPUT") +} diff --git a/cmd/erisdb/main.go b/cmd/erisdb/main.go index a3ef77a8..2cf48ace 100644 --- a/cmd/erisdb/main.go +++ b/cmd/erisdb/main.go @@ -1,36 +1,62 @@ +// Copyright 2015, 2016 Eris Industries (UK) Ltd. +// This file is part of Eris-RT + +// Eris-RT is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Eris-RT is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Eris-RT. If not, see <http://www.gnu.org/licenses/>. + package main import ( - "fmt" - edb "github.com/eris-ltd/eris-db/erisdb" - "os" + "github.com/eris-ltd/eris-db/cmd" ) -// TODO the input stuff. func main() { - args := os.Args[1:] - var baseDir string - var inProc bool - if len(args) > 0 { - baseDir = args[0] - if len(args) > 1 { - if args[1] == "inproc" { - inProc = true - } - } - } else { - baseDir = os.Getenv("HOME") + "/.erisdb" - } - - proc, errSt := edb.ServeErisDB(baseDir, inProc) - if errSt != nil { - panic(errSt.Error()) - } - errSe := proc.Start() - if errSe != nil { - panic(errSe.Error()) - } - // TODO For now. - fmt.Println("DONTMINDME55891") - <-proc.StopEventChannel() + commands.Execute() } + +// package main +// +// import ( +// "fmt" +// edb "github.com/eris-ltd/eris-db/erisdb" +// "os" +// ) +// +// // TODO the input stuff. +// func main() { +// args := os.Args[1:] +// var baseDir string +// var inProc bool +// if len(args) > 0 { +// baseDir = args[0] +// if len(args) > 1 { +// if args[1] == "inproc" { +// inProc = true +// } +// } +// } else { +// baseDir = os.Getenv("HOME") + "/.erisdb" +// } +// +// proc, errSt := edb.ServeErisDB(baseDir, inProc) +// if errSt != nil { +// panic(errSt.Error()) +// } +// errSe := proc.Start() +// if errSe != nil { +// panic(errSe.Error()) +// } +// // TODO For now. +// fmt.Println("DONTMINDME55891") +// <-proc.StopEventChannel() +// } diff --git a/cmd/serve.go b/cmd/serve.go new file mode 100644 index 00000000..d2e385b7 --- /dev/null +++ b/cmd/serve.go @@ -0,0 +1,30 @@ +// Copyright 2015, 2016 Eris Industries (UK) Ltd. +// This file is part of Eris-RT + +// Eris-RT is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Eris-RT is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Eris-RT. If not, see <http://www.gnu.org/licenses/>. + +package commands + +import ( + "fmt" + "os" + + cobra "github.com/spf13/cobra" + + common "github.com/eris-ltd/common/go/common" + + serve "github.com/eris-ltd/eris-db/serve" +) + +var -- GitLab