Packaging: ignore expected rpmlint warning
[src/xds/xds-cli.git] / cmd-exec.go
index 83743a3..819b911 100644 (file)
@@ -31,7 +31,7 @@ func initCmdExec(cmdDef *[]cli.Command) {
        *cmdDef = append(*cmdDef, cli.Command{
                Name:   "exec",
                Usage:  "execute a command in XDS",
-               Action: exec,
+               Action: execCmd,
                Flags: []cli.Flag{
                        cli.StringFlag{
                                Name:   "id",
@@ -52,7 +52,7 @@ func initCmdExec(cmdDef *[]cli.Command) {
        })
 }
 
-func exec(ctx *cli.Context) error {
+func execCmd(ctx *cli.Context) error {
        prjID := ctx.String("id")
        rPath := ctx.String("rpath")
        sdkid := ctx.String("sdkid")
@@ -78,7 +78,7 @@ func exec(ctx *cli.Context) error {
        }
        exitChan := make(chan exitResult, 1)
 
-       IOsk.On("disconnection", func(err error) {
+       IOSkClient.On("disconnection", func(err error) {
                Log.Debugf("WS disconnection event with err: %v\n", err)
                exitChan <- exitResult{err, 2}
        })
@@ -96,15 +96,15 @@ func exec(ctx *cli.Context) error {
                }
        }
 
-       IOsk.On(xaapiv1.ExecOutEvent, func(ev xaapiv1.ExecOutMsg) {
+       IOSkClient.On(xaapiv1.ExecOutEvent, func(ev xaapiv1.ExecOutMsg) {
                outFunc(ev.Timestamp, ev.Stdout, ev.Stderr)
        })
 
-       IOsk.On(xaapiv1.ExecExitEvent, func(ev xaapiv1.ExecExitMsg) {
+       IOSkClient.On(xaapiv1.ExecExitEvent, func(ev xaapiv1.ExecExitMsg) {
                exitChan <- exitResult{ev.Error, ev.Code}
        })
 
-       IOsk.On(xaapiv1.EVTProjectChange, func(ev xaapiv1.EventMsg) {
+       IOSkClient.On(xaapiv1.EVTProjectChange, func(ev xaapiv1.EventMsg) {
                prj, _ := ev.DecodeProjectConfig()
                Log.Infof("Event %v (%v): %v", ev.Type, ev.Time, prj)
        })
@@ -160,6 +160,10 @@ func exec(ctx *cli.Context) error {
 
        // Wait exit
        select {
+       case res := <-IOSkClient.ServerDiscoChan:
+               Log.Debugf("XDS Server disconnected %v", res)
+               return cli.NewExitError(res.error, res.code)
+
        case res := <-exitChan:
                errStr := ""
                if res.code == 0 {