Update .gitreview file
[src/xds/xds-cli.git] / cmd-exec.go
index 3f1ee97..98ceb78 100644 (file)
@@ -48,6 +48,12 @@ func initCmdExec(cmdDef *[]cli.Command) {
                                EnvVar: "XDS_SDK_ID",
                                Usage:  "Cross Sdk ID to use to build project",
                        },
+                       cli.BoolFlag{
+                               Name:   "ldlibpath-no-reset",
+                               Hidden: true,
+                               EnvVar: "XDS_LD_LIBRARY_PATH_NO_RESET",
+                               Usage:  "Don't reset LD_LIBRARY_PATH before executing command",
+                       },
                },
        })
 }
@@ -78,7 +84,7 @@ func execCmd(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 +102,15 @@ func execCmd(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)
        })
@@ -144,13 +150,14 @@ func execCmd(ctx *cli.Context) error {
 
        // Send build command
        args := xaapiv1.ExecArgs{
-               ID:         prjID,
-               SdkID:      sdkid,
-               Cmd:        strings.Trim(argsCommand[0], " "),
-               Args:       argsCommand[1:],
-               Env:        env,
-               RPath:      rPath,
-               CmdTimeout: 60,
+               ID:               prjID,
+               SdkID:            sdkid,
+               Cmd:              strings.Trim(argsCommand[0], " "),
+               Args:             argsCommand[1:],
+               Env:              env,
+               RPath:            rPath,
+               LdLibPathNoReset: ctx.Bool("ldlibpath-no-reset"),
+               CmdTimeout:       60,
        }
 
        LogPost("POST /exec %v", args)
@@ -160,6 +167,10 @@ func execCmd(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 {