(cmd *cobra.Command, args []string)
| 437 | } |
| 438 | |
| 439 | func serverRun(cmd *cobra.Command, args []string) error { |
| 440 | connServerInitialEnv = envutil.PruneInitialEnv(envutil.SliceToMap(os.Environ())) |
| 441 | |
| 442 | var logFile *os.File |
| 443 | if connServerDev { |
| 444 | var err error |
| 445 | logFilePath := fmt.Sprintf("/tmp/waveterm-connserver-%d.log", os.Getuid()) |
| 446 | logFile, err = os.OpenFile(logFilePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644) |
| 447 | if err != nil { |
| 448 | fmt.Fprintf(os.Stderr, "failed to open log file: %v\n", err) |
| 449 | log.SetFlags(log.LstdFlags | log.Lmicroseconds) |
| 450 | log.SetPrefix(fmt.Sprintf("[PID:%d] ", os.Getpid())) |
| 451 | } else { |
| 452 | defer logFile.Close() |
| 453 | logWriter := io.MultiWriter(os.Stderr, logFile) |
| 454 | log.SetOutput(logWriter) |
| 455 | log.SetFlags(log.LstdFlags | log.Lmicroseconds) |
| 456 | log.SetPrefix(fmt.Sprintf("[PID:%d] ", os.Getpid())) |
| 457 | } |
| 458 | } |
| 459 | if connServerConnName == "" { |
| 460 | if logFile != nil { |
| 461 | fmt.Fprintf(logFile, "--conn parameter is required\n") |
| 462 | } |
| 463 | return fmt.Errorf("--conn parameter is required") |
| 464 | } |
| 465 | installErr := wshutil.InstallRcFiles() |
| 466 | if installErr != nil { |
| 467 | if logFile != nil { |
| 468 | fmt.Fprintf(logFile, "error installing rc files: %v\n", installErr) |
| 469 | } |
| 470 | log.Printf("error installing rc files: %v", installErr) |
| 471 | } |
| 472 | sigutil.InstallSIGUSR1Handler() |
| 473 | if connServerRouter { |
| 474 | err := serverRunRouter() |
| 475 | if err != nil && logFile != nil { |
| 476 | fmt.Fprintf(logFile, "serverRunRouter error: %v\n", err) |
| 477 | } |
| 478 | return err |
| 479 | } |
| 480 | if connServerRouterDomainSocket { |
| 481 | jwtToken, err := askForJwtToken() |
| 482 | if err != nil { |
| 483 | if logFile != nil { |
| 484 | fmt.Fprintf(logFile, "askForJwtToken error: %v\n", err) |
| 485 | } |
| 486 | return err |
| 487 | } |
| 488 | err = serverRunRouterDomainSocket(jwtToken) |
| 489 | if err != nil && logFile != nil { |
| 490 | fmt.Fprintf(logFile, "serverRunRouterDomainSocket error: %v\n", err) |
| 491 | } |
| 492 | return err |
| 493 | } |
| 494 | jwtToken, err := askForJwtToken() |
| 495 | if err != nil { |
| 496 | if logFile != nil { |
nothing calls this directly
no test coverage detected