@@ -23,24 +23,52 @@ func newRecordCommand() *cobra.Command {
2323 Use : "record" ,
2424 Short : "Record logs of a pod" ,
2525 Args : cobra .ExactArgs (1 ),
26- Run : func (cmd * cobra.Command , args []string ) {
27- cmd .Println ("Record command executed" )
28- switch args [0 ] {
29- case "run" :
30- startLogger ()
31- case "stop" :
32- stopLogger ()
33- case "restart" :
34- stopLogger ()
35- time .Sleep (1 * time .Second ) // TODO: Sync better than sleeping.
36- startLogger ()
37- default :
38- cmd .Println ("Invalid argument. Use 'run' or 'stop'." )
39- }
26+ PreRun : func (cmd * cobra.Command , args []string ) {
27+ cmd .Println (pkg .ColorLine ("NOTE: Currently only 1 recorder is supported at a time." , pkg .ColorYellow ))
4028 },
4129 }
30+ cmd .AddCommand (& cobra.Command {
31+ Use : "run" ,
32+ Run : func (cmd * cobra.Command , args []string ) {
33+ cmd .Println ("Starting logger..." )
34+ startLogger ()
35+ },
36+ Args : cobra .NoArgs ,
37+ Short : "Start the logger" ,
38+ })
39+ cmd .AddCommand (& cobra.Command {
40+ Use : "stop" ,
41+ Run : func (cmd * cobra.Command , args []string ) {
42+ cmd .Println ("Starting logger..." )
43+ stopLogger ()
44+ },
45+ Args : cobra .NoArgs ,
46+ Short : "Start the logger" ,
47+ })
48+ cmd .AddCommand (& cobra.Command {
49+ Use : "restart" ,
50+ Run : func (cmd * cobra.Command , args []string ) {
51+ stopLogger ()
52+ time .Sleep (1 * time .Second ) // TODO: Sync better than sleeping.
53+ startLogger ()
54+ },
55+ Args : cobra .NoArgs ,
56+ Short : "Start the logger" ,
57+ })
4258
43- cmd .Flags ().StringVarP (& labels , "labels" , "l" , "" , "list of key value pairs to use as labels while filtering pods." )
59+ cmd .AddCommand (& cobra.Command {
60+ Use : "status" ,
61+ Run : func (cmd * cobra.Command , args []string ) {
62+ if pkg .ConfigData .LoggerPID != 0 {
63+ fmt .Println ("Logger is running with PID:" , pkg .ConfigData .LoggerPID )
64+ } else {
65+ fmt .Println ("Logger is not running." )
66+ }
67+ },
68+ Args : cobra .NoArgs ,
69+ Short : "Status of the logger" ,
70+ })
71+ cmd .PersistentFlags ().StringVarP (& labels , "labels" , "l" , "" , "list of key value pairs to use as labels while filtering pods." )
4472 return cmd
4573}
4674
@@ -111,6 +139,7 @@ func stopLogger() {
111139 return
112140 }
113141 fmt .Println ("STOPPED" )
142+ pkg .ConfigData .LoggerPID = 0
114143}
115144func init () {
116145 home , err := os .UserHomeDir ()
0 commit comments