X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=main.go;h=2d0c1799fbb41cff765698461dec2eb43a485998;hb=6f71a805b2f6f961761b5906a21d2a234b84aa4c;hp=0908140516a5b3ae0206504cf0a82eedfcb7bfa8;hpb=cc8b2cf6d529062399e0d9b4cde17f2475ef19c1;p=src%2Fxds%2Fxds-cli.git diff --git a/main.go b/main.go index 0908140..2d0c179 100644 --- a/main.go +++ b/main.go @@ -75,14 +75,28 @@ var IOsk *socketio_client.Client // exitError exists this program with the specified error func exitError(code int, f string, a ...interface{}) { + earlyDisplay() err := fmt.Sprintf(f, a...) fmt.Fprintf(os.Stderr, err+"\n") os.Exit(code) } +// earlyDebug Used to log info before logger has been initialized +var earlyDebug []string + +func earlyPrintf(format string, args ...interface{}) { + earlyDebug = append(earlyDebug, fmt.Sprintf(format, args...)) +} + +func earlyDisplay() { + for _, str := range earlyDebug { + Log.Infof("%s", str) + } + earlyDebug = []string{} +} + // main func main() { - var earlyDebug []string // Allow to set app name from cli (useful for debugging) if AppName == "" { @@ -217,12 +231,17 @@ func main() { // Load config file if requested if confFile != "" { - earlyDebug = append(earlyDebug, fmt.Sprintf("confFile detected: %v", confFile)) + earlyPrintf("confFile detected: %v", confFile) + confFile, err := common.ResolveEnvVar(confFile) + if err != nil { + exitError(1, "Error while resolving confFile: %v", err) + } + earlyPrintf("Resolved confFile: %v", confFile) if !common.Exists(confFile) { exitError(1, "Error env config file not found") } // Load config file variables that will overwrite env variables - err := godotenv.Overload(confFile) + err = godotenv.Overload(confFile) if err != nil { exitError(1, "Error loading env config file "+confFile) } @@ -232,7 +251,7 @@ func main() { if err != nil { exitError(1, "Error reading env config file "+confFile) } - earlyDebug = append(earlyDebug, fmt.Sprintf("EnvConfFileMap: %v", EnvConfFileMap)) + earlyPrintf("EnvConfFileMap: %v", EnvConfFileMap) } app.Before = func(ctx *cli.Context) error { @@ -258,9 +277,7 @@ func main() { Log.Formatter = &logrus.TextFormatter{} Log.Infof("%s version: %s", AppName, app.Version) - for _, str := range earlyDebug { - Log.Infof("%s", str) - } + earlyDisplay() Log.Debugf("\nEnvironment: %v\n", os.Environ()) if err = XdsConnInit(ctx); err != nil { @@ -303,6 +320,11 @@ func XdsConnInit(ctx *cli.Context) error { serverURL = "http://" + serverURL } + lvl := common.HTTPLogLevelWarning + if Log.Level == logrus.DebugLevel { + lvl = common.HTTPLogLevelDebug + } + // Create HTTP client Log.Debugln("Connect HTTP client on ", agentURL) conf := common.HTTPClientConfig{ @@ -311,15 +333,22 @@ func XdsConnInit(ctx *cli.Context) error { CsrfDisable: true, LogOut: Log.Out, LogPrefix: "XDSAGENT: ", - LogLevel: common.HTTPLogLevelWarning, + LogLevel: lvl, } HTTPCli, err = common.HTTPNewClient(agentURL, conf) if err != nil { errmsg := err.Error() - if m, err := regexp.MatchString("Get http.?://", errmsg); m && err == nil { + m, err := regexp.MatchString("Get http.?://", errmsg) + if (m && err == nil) || strings.Contains(errmsg, "Failed to get device ID") { i := strings.LastIndex(errmsg, ":") - errmsg = "Cannot connection to " + agentURL + errmsg[i:] + newErr := "Cannot connection to " + agentURL + if i > 0 { + newErr += " (" + strings.TrimSpace(errmsg[i+1:]) + ")" + } else { + newErr += " (" + strings.TrimSpace(errmsg) + ")" + } + errmsg = newErr } return cli.NewExitError(errmsg, 1) } @@ -361,6 +390,7 @@ func XdsConnInit(ctx *cli.Context) error { } svrCfg := xdsConf.Servers[XdsServerIndexGet()] if (serverURL != "" && svrCfg.URL != serverURL) || !svrCfg.Connected { + Log.Infof("Update XDS Server config: serverURL=%v, svrCfg=%v", serverURL, svrCfg) if serverURL != "" { svrCfg.URL = serverURL }