export function parseExitCode()

in src/bazel/bazel_exit_code.ts [107:152]


export function parseExitCode(exitCode: number, command?: string): ExitCode {
  switch (exitCode) {
    case 0:
      return ExitCode.SUCCESS;
    case 1:
      // Builds can also have parsing failures but Bazel uses the same code
      // for... reasons?
      return command !== "build"
        ? ExitCode.PARSING_FAILURE
        : ExitCode.BUILD_FAILURE;
    case 2:
      return ExitCode.COMMAND_LINE_ERROR;
    case 3:
      return command === "test"
        ? ExitCode.TESTS_FAILED
        : ExitCode.PARTIAL_ANALYSIS_FAILURE;
    case 4:
      return ExitCode.NO_TESTS_FOUND;
    case 6:
      return ExitCode.RUN_FAILURE;
    case 7:
      return ExitCode.ANALYSIS_FAILURE;
    case 8:
      return ExitCode.INTERRUPTED;
    case 9:
      return ExitCode.LOCK_HELD_NOBLOCK_FOR_LOCK;
    case 32:
      return ExitCode.REMOTE_ENVIRONMENTAL_ERROR;
    case 33:
      return ExitCode.OOM_ERROR;
    case 34:
      return ExitCode.REMOTE_ERROR;
    case 36:
      return ExitCode.LOCAL_ENVIRONMENTAL_ERROR;
    case 37:
      return ExitCode.INTERNAL_ERROR;
    case 38:
      return ExitCode.PUBLISH_ERROR;
    case 39:
      return ExitCode.REMOTE_EXECUTOR_OVERLOADED;
    case 40:
      return ExitCode.RESERVED;
    default:
      return ExitCode.UNKNOWN;
  }
}