| 537 | * arguments. |
| 538 | */ |
| 539 | export async function setDefaults(cliArgs: UserProvidedArgs, configArgs?: ConfigArgs): Promise<DefaultedArgs> { |
| 540 | const args = Object.assign({}, configArgs || {}, cliArgs) |
| 541 | |
| 542 | if (!args["user-data-dir"]) { |
| 543 | args["user-data-dir"] = paths.data |
| 544 | } |
| 545 | |
| 546 | if (!args["extensions-dir"]) { |
| 547 | args["extensions-dir"] = path.join(args["user-data-dir"], "extensions") |
| 548 | } |
| 549 | |
| 550 | if (!args["session-socket"]) { |
| 551 | args["session-socket"] = path.join(args["user-data-dir"], "code-server-ipc.sock") |
| 552 | } |
| 553 | process.env.CODE_SERVER_SESSION_SOCKET = args["session-socket"] |
| 554 | |
| 555 | // --verbose takes priority over --log and --log takes priority over the |
| 556 | // environment variable. |
| 557 | if (args.verbose) { |
| 558 | args.log = LogLevel.Trace |
| 559 | } else if ( |
| 560 | !args.log && |
| 561 | process.env.LOG_LEVEL && |
| 562 | Object.values(LogLevel).includes(process.env.LOG_LEVEL as LogLevel) |
| 563 | ) { |
| 564 | args.log = process.env.LOG_LEVEL as LogLevel |
| 565 | } |
| 566 | |
| 567 | // Sync --log, --verbose, the environment variable, and logger level. |
| 568 | if (args.log) { |
| 569 | process.env.LOG_LEVEL = args.log |
| 570 | } |
| 571 | switch (args.log) { |
| 572 | case LogLevel.Trace: |
| 573 | logger.level = Level.Trace |
| 574 | args.verbose = true |
| 575 | break |
| 576 | case LogLevel.Debug: |
| 577 | logger.level = Level.Debug |
| 578 | args.verbose = false |
| 579 | break |
| 580 | case LogLevel.Info: |
| 581 | logger.level = Level.Info |
| 582 | args.verbose = false |
| 583 | break |
| 584 | case LogLevel.Warn: |
| 585 | logger.level = Level.Warn |
| 586 | args.verbose = false |
| 587 | break |
| 588 | case LogLevel.Error: |
| 589 | logger.level = Level.Error |
| 590 | args.verbose = false |
| 591 | break |
| 592 | } |
| 593 | |
| 594 | // Default to using a password. |
| 595 | if (!args.auth) { |
| 596 | args.auth = AuthType.Password |