add cobra to implement cli interface for different commands
This commit is contained in:
parent
f183654996
commit
50e27db1c4
48
command/root.go
Normal file
48
command/root.go
Normal file
|
@ -0,0 +1,48 @@
|
|||
package command
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/schrej/wings/api"
|
||||
"github.com/schrej/wings/config"
|
||||
"github.com/schrej/wings/tools"
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
const (
|
||||
// Version of pterodactyld
|
||||
Version = "0.0.1-alpha"
|
||||
)
|
||||
|
||||
var RootCommand = &cobra.Command{
|
||||
Use: "wings",
|
||||
Short: "",
|
||||
Long: "",
|
||||
Run: run,
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
||||
}
|
||||
|
||||
func Execute() {
|
||||
RootCommand.Execute()
|
||||
}
|
||||
|
||||
func run(cmd *cobra.Command, args []string) {
|
||||
fmt.Println("Loading configuration")
|
||||
if err := config.LoadConfiguration(nil); err != nil {
|
||||
log.WithError(err).Fatal("Failed to find configuration file")
|
||||
}
|
||||
tools.ConfigureLogging()
|
||||
|
||||
log.Info("Starting wings.go version ", Version)
|
||||
|
||||
// Load configuration
|
||||
log.Info("Loading configuration...")
|
||||
|
||||
log.Info("Starting api webserver")
|
||||
api := api.NewAPI()
|
||||
api.Listen()
|
||||
}
|
8
glide.lock
generated
8
glide.lock
generated
|
@ -1,5 +1,5 @@
|
|||
hash: 4954000649d7a74d198904957adae4d4a88f6710c254f87930fbf6457b07eddb
|
||||
updated: 2017-06-27T12:42:33.899081413+02:00
|
||||
hash: df8c67e65e52dabe58d7e178fd208c04518f7f30cf6de7c4ee11d4e4440a55a5
|
||||
updated: 2017-06-29T12:20:46.267916965+02:00
|
||||
imports:
|
||||
- name: bitbucket.org/tebeka/strftime
|
||||
version: 2194253a23c090a4d5953b152a3c63fb5da4f5a4
|
||||
|
@ -25,6 +25,8 @@ imports:
|
|||
- json/parser
|
||||
- json/scanner
|
||||
- json/token
|
||||
- name: github.com/inconshreveable/mousetrap
|
||||
version: 76626ae9c91c4f2a10f34cad8ce83ea42c93bb75
|
||||
- name: github.com/lestrrat/go-file-rotatelogs
|
||||
version: ab335c655133cea61d8164853c1ed0e97d6c77cb
|
||||
- name: github.com/magiconair/properties
|
||||
|
@ -49,6 +51,8 @@ imports:
|
|||
- mem
|
||||
- name: github.com/spf13/cast
|
||||
version: acbeb36b902d72a7a4c18e8f3241075e7ab763e4
|
||||
- name: github.com/spf13/cobra
|
||||
version: 4d647c8944eb42504a714e57e97f244ed6344722
|
||||
- name: github.com/spf13/jwalterweatherman
|
||||
version: 0efa5202c04663c757d84f90f5219c1250baf94f
|
||||
- name: github.com/spf13/pflag
|
||||
|
|
|
@ -9,6 +9,7 @@ import:
|
|||
- package: github.com/sirupsen/logrus
|
||||
version: ~1.0.0
|
||||
- package: github.com/spf13/viper
|
||||
- package: github.com/spf13/cobra
|
||||
testImport:
|
||||
- package: github.com/stretchr/testify
|
||||
version: ~1.1.4
|
||||
|
|
27
main.go
27
main.go
|
@ -2,31 +2,14 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/schrej/wings/api"
|
||||
"github.com/schrej/wings/config"
|
||||
"github.com/schrej/wings/tools"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
const (
|
||||
// Version of pterodactyld
|
||||
Version = "0.0.1-alpha"
|
||||
"github.com/schrej/wings/command"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fmt.Println("Loading configuration")
|
||||
if err := config.LoadConfiguration(nil); err != nil {
|
||||
log.WithError(err).Fatal("Failed to find configuration file")
|
||||
if err := command.RootCommand.Execute(); err != nil {
|
||||
fmt.Println(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
tools.ConfigureLogging()
|
||||
|
||||
log.Info("Starting wings.go version ", Version)
|
||||
|
||||
// Load configuration
|
||||
log.Info("Loading configuration...")
|
||||
|
||||
log.Info("Starting api webserver")
|
||||
api := api.NewAPI()
|
||||
api.Listen()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user