@NotNull
  public static GeneralCommandLine createWslCommandLine(@Nullable Project project,
                                                        @NotNull WSLDistribution wsl,
                                                        @NotNull GeneralCommandLine cmd,
                                                        @Nullable String linuxWorkingDir,
                                                        @NotNull String linuxExePath) throws ExecutionException {
    cmd.setExePath(linuxExePath);
    WSLCommandLineOptions wslOptions = new WSLCommandLineOptions();
    if (StringUtil.isNotEmpty(linuxWorkingDir)) {
      wslOptions.setRemoteWorkingDirectory(linuxWorkingDir);
    }
    // Working directory as well as all parameters were computed with MacroPathConverter, so they are
    // paths in linux. Reset working directory in command line, because linux directory is not valid
    // in windows, and we will fail to start process with it.
    cmd.setWorkDirectory((String)null);
    // run command in interactive shell so that shell rc files are executed and configure proper environment
    wslOptions.setExecuteCommandInInteractiveShell(true);
    return wsl.patchCommandLine(cmd, project, wslOptions);
  }
@NotNull
  public static GeneralCommandLine createWslCommandLine(@Nullable Project project,
                                                        @NotNull WSLDistribution wsl,
                                                        @NotNull GeneralCommandLine cmd,
                                                        @Nullable String linuxWorkingDir,
                                                        @NotNull String linuxExePath)