| iomodo | c6abf5b | 2021-02-19 14:48:03 +0400 | [diff] [blame] | 1 | package commands |
| 2 | |
| 3 | import ( |
| iomodo | a19d479 | 2021-03-26 00:27:25 +0400 | [diff] [blame] | 4 | "github.com/giolekva/pcloud/core/kg/app" |
| iomodo | c6abf5b | 2021-02-19 14:48:03 +0400 | [diff] [blame] | 5 | "github.com/giolekva/pcloud/core/kg/log" |
| iomodo | b892d07 | 2021-02-22 00:23:16 +0400 | [diff] [blame] | 6 | "github.com/giolekva/pcloud/core/kg/model" |
| iomodo | c6abf5b | 2021-02-19 14:48:03 +0400 | [diff] [blame] | 7 | "github.com/giolekva/pcloud/core/kg/server" |
| iomodo | a19d479 | 2021-03-26 00:27:25 +0400 | [diff] [blame] | 8 | "github.com/giolekva/pcloud/core/kg/store/memory" |
| iomodo | c6abf5b | 2021-02-19 14:48:03 +0400 | [diff] [blame] | 9 | "github.com/spf13/cobra" |
| 10 | ) |
| 11 | |
| 12 | // Command is an abstraction of the cobra Command |
| 13 | type Command = cobra.Command |
| 14 | |
| 15 | // Run function starts the application |
| 16 | func Run(args []string) error { |
| 17 | rootCmd.SetArgs(args) |
| 18 | return rootCmd.Execute() |
| 19 | } |
| 20 | |
| 21 | // rootCmd is a command to run the server. |
| iomodo | d32f9ee | 2021-02-21 21:28:50 +0400 | [diff] [blame] | 22 | var rootCmd = &Command{ |
| iomodo | c6abf5b | 2021-02-19 14:48:03 +0400 | [diff] [blame] | 23 | Use: "server", |
| 24 | Short: "An example of the basic server", |
| 25 | RunE: serverCmdF, |
| 26 | } |
| 27 | |
| 28 | func serverCmdF(command *cobra.Command, args []string) error { |
| iomodo | b892d07 | 2021-02-22 00:23:16 +0400 | [diff] [blame] | 29 | logger := log.NewLogger(&log.LoggerConfiguration{ |
| iomodo | c6abf5b | 2021-02-19 14:48:03 +0400 | [diff] [blame] | 30 | EnableConsole: true, |
| 31 | ConsoleJSON: true, |
| 32 | ConsoleLevel: "debug", |
| 33 | EnableFile: true, |
| 34 | FileJSON: true, |
| 35 | FileLevel: "debug", |
| 36 | FileLocation: "server.log", |
| iomodo | b892d07 | 2021-02-22 00:23:16 +0400 | [diff] [blame] | 37 | }) |
| 38 | config := model.NewConfig() |
| 39 | |
| iomodo | a19d479 | 2021-03-26 00:27:25 +0400 | [diff] [blame] | 40 | st := memory.New() |
| iomodo | 352127d | 2021-03-26 20:10:32 +0400 | [diff] [blame] | 41 | a := app.NewApp(st, config, logger) |
| iomodo | a19d479 | 2021-03-26 00:27:25 +0400 | [diff] [blame] | 42 | |
| 43 | grpcServer := server.NewGRPCServer(logger, config, a) |
| 44 | httpServer := server.NewHTTPServer(logger, config, a) |
| iomodo | b892d07 | 2021-02-22 00:23:16 +0400 | [diff] [blame] | 45 | |
| iomodo | db170e1 | 2021-02-21 23:06:20 +0400 | [diff] [blame] | 46 | servers := server.New(logger) |
| 47 | servers.AddServers(grpcServer) |
| iomodo | b892d07 | 2021-02-22 00:23:16 +0400 | [diff] [blame] | 48 | servers.AddServers(httpServer) |
| iomodo | db170e1 | 2021-02-21 23:06:20 +0400 | [diff] [blame] | 49 | servers.Run() |
| iomodo | c6abf5b | 2021-02-19 14:48:03 +0400 | [diff] [blame] | 50 | |
| iomodo | c6abf5b | 2021-02-19 14:48:03 +0400 | [diff] [blame] | 51 | return nil |
| 52 | } |