diff --git a/command/root.go b/command/root.go new file mode 100644 index 0000000..920b1b5 --- /dev/null +++ b/command/root.go @@ -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() +} diff --git a/glide.lock b/glide.lock index 91cbd07..6ec9434 100644 --- a/glide.lock +++ b/glide.lock @@ -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 diff --git a/glide.yaml b/glide.yaml index f928bf3..3a9362a 100644 --- a/glide.yaml +++ b/glide.yaml @@ -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 diff --git a/main.go b/main.go index 76f1d24..8d513d8 100644 --- a/main.go +++ b/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() }