9
9
"errors"
10
10
"log"
11
11
"net/http"
12
+ "os"
12
13
"os/signal"
13
14
"syscall"
14
15
@@ -24,6 +25,26 @@ var rootCmd = &cobra.Command{
24
25
Use : "theila" ,
25
26
Short : "Talos and Sidero frontend" ,
26
27
Long : `` ,
28
+ Run : func (cmd * cobra.Command , args []string ) {
29
+ config := zap .NewDevelopmentConfig ()
30
+ config .EncoderConfig .EncodeLevel = zapcore .CapitalColorLevelEncoder
31
+
32
+ logger , err := config .Build ()
33
+ if err != nil {
34
+ log .Fatalf ("failed to set up logging %s" , err )
35
+ }
36
+
37
+ server , err := backend .NewServer (rootCmdArgs .address , rootCmdArgs .port )
38
+ if err != nil {
39
+ logger .Fatal ("failed to create server" , zap .Error (err ))
40
+ }
41
+
42
+ ctx , _ := signal .NotifyContext (context .Background (), syscall .SIGINT , syscall .SIGTERM )
43
+
44
+ if err := server .Run (ctx ); err != nil && ! errors .Is (err , http .ErrServerClosed ) {
45
+ logger .Fatal ("failed to run server" , zap .Error (err ))
46
+ }
47
+ },
27
48
}
28
49
29
50
var rootCmdArgs struct {
@@ -32,23 +53,9 @@ var rootCmdArgs struct {
32
53
}
33
54
34
55
func main () {
35
- config := zap .NewDevelopmentConfig ()
36
- config .EncoderConfig .EncodeLevel = zapcore .CapitalColorLevelEncoder
37
-
38
- logger , err := config .Build ()
39
- if err != nil {
40
- log .Fatalf ("failed to set up logging %s" , err )
41
- }
42
-
43
- server , err := backend .NewServer (rootCmdArgs .address , rootCmdArgs .port )
44
- if err != nil {
45
- logger .Fatal ("failed to create server" , zap .Error (err ))
46
- }
47
-
48
- ctx , _ := signal .NotifyContext (context .Background (), syscall .SIGINT , syscall .SIGTERM )
49
-
50
- if err := server .Run (ctx ); err != nil && ! errors .Is (err , http .ErrServerClosed ) {
51
- logger .Fatal ("failed to run server" , zap .Error (err ))
56
+ if err := rootCmd .Execute (); err != nil {
57
+ log .Printf ("execute error %s" , err )
58
+ os .Exit (1 )
52
59
}
53
60
}
54
61
0 commit comments