mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[eel-vcs] IJPL-204860 gpg commit signing on wsl: wsl-only regression fix
GitOrigin-RevId: 39db57978ea9527080c4f6d855bde448c0af9976
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7e5de8f578
commit
8f9636038e
@@ -1,6 +1,7 @@
|
||||
// Copyright 2000-2024 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package git4idea.commands;
|
||||
|
||||
import com.intellij.execution.wsl.WSLDistribution;
|
||||
import com.intellij.externalProcessAuthHelper.ScriptGeneratorImpl;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import externalApp.ExternalApp;
|
||||
@@ -10,23 +11,34 @@ import git4idea.config.GitExecutable;
|
||||
import git4idea.editor.GitRebaseEditorAppHandler;
|
||||
import git4idea.http.GitAskPassAppHandler;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
|
||||
public class GitScriptGenerator extends ScriptGeneratorImpl {
|
||||
private final GitExecutable myExecutable;
|
||||
private final WSLDistribution myWSLDistribution;
|
||||
|
||||
|
||||
public GitScriptGenerator(@NotNull GitExecutable executable) {
|
||||
myExecutable = executable;
|
||||
if (executable instanceof GitExecutable.Wsl) {
|
||||
myWSLDistribution = ((GitExecutable.Wsl)executable).getDistribution();
|
||||
}
|
||||
else {
|
||||
myWSLDistribution = null;
|
||||
}
|
||||
}
|
||||
|
||||
public GitScriptGenerator(@Nullable WSLDistribution wslDistribution) {
|
||||
myWSLDistribution = wslDistribution;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @NotNull String getJavaExecutablePath() {
|
||||
if (myExecutable instanceof GitExecutable.Wsl) {
|
||||
if (myWSLDistribution != null) {
|
||||
Path javaExecutable = Path.of(String.format("%s\\bin\\java.exe", System.getProperty("java.home")));
|
||||
return myExecutable.convertFilePath(javaExecutable);
|
||||
String converted = myWSLDistribution.getWslPath(javaExecutable.toAbsolutePath());
|
||||
return converted != null ? converted : javaExecutable.toAbsolutePath().toString();
|
||||
}
|
||||
return super.getJavaExecutablePath();
|
||||
}
|
||||
@@ -35,7 +47,7 @@ public class GitScriptGenerator extends ScriptGeneratorImpl {
|
||||
public @NotNull String commandLine(@NotNull Class<? extends ExternalApp> mainClass, boolean useBatchFile) {
|
||||
String commandLine = super.commandLine(mainClass, useBatchFile);
|
||||
|
||||
if (myExecutable instanceof GitExecutable.Wsl) {
|
||||
if (myWSLDistribution != null) {
|
||||
// pass ENV variables from git to java command
|
||||
StringBuilder sb = new StringBuilder();
|
||||
List<String> envs = List.of(
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.intellij.openapi.util.io.NioFiles
|
||||
import com.intellij.openapi.util.registry.Registry
|
||||
import com.intellij.openapi.vcs.ProjectLevelVcsManager
|
||||
import com.intellij.openapi.vcs.VcsException
|
||||
import com.intellij.platform.ide.impl.wsl.WslEelDescriptor
|
||||
import com.intellij.platform.util.coroutines.flow.debounceBatch
|
||||
import com.intellij.util.application
|
||||
import com.intellij.util.concurrency.annotations.RequiresBackgroundThread
|
||||
@@ -365,7 +366,14 @@ internal class PinentryShellScriptLauncherGenerator(val executable: GitExecutabl
|
||||
}
|
||||
|
||||
fun getCommandLine(): String {
|
||||
val gitScriptGenerator = GitScriptGenerator(executable)
|
||||
val gitScriptGenerator = when (executable) {
|
||||
is GitExecutable.Eel -> {
|
||||
GitScriptGenerator((executable.eel.descriptor as? WslEelDescriptor)?.distribution)
|
||||
}
|
||||
else -> {
|
||||
GitScriptGenerator(executable)
|
||||
}
|
||||
}
|
||||
return gitScriptGenerator.addParameters(*getCommandLineParameters()).commandLine(PinentryApp::class.java, false)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user