diff --git a/cmd/eris-db.go b/cmd/eris-db.go new file mode 100644 index 0000000000000000000000000000000000000000..543442a198e71154c3f6f90832c4afab026da65a --- /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 a3ef77a82c44cc4c1b463f25a92875cfac9067e8..2cf48ace139703d4474595b941868a1b9b7d121f 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 0000000000000000000000000000000000000000..d2e385b7fce48fcc6e37b94839ae0f909f355718 --- /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