IDEA-186973 "inappropriate ioctl for device" reported when running Overmind as an external tool

Experimental registry key is use.tty.for.external.tools=false
This commit is contained in:
Vassiliy.Kudryashov
2018-10-09 20:41:27 +03:00
parent 2ae3a61cdb
commit 431e4a860e
2 changed files with 8 additions and 1 deletions
@@ -4,6 +4,7 @@ package com.intellij.tools;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.configurations.GeneralCommandLine;
import com.intellij.execution.configurations.PtyCommandLine;
import com.intellij.execution.executors.DefaultRunExecutor;
import com.intellij.execution.process.OSProcessHandler;
import com.intellij.execution.process.ProcessHandler;
@@ -23,6 +24,7 @@ import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.options.SchemeElement;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.registry.Registry;
import com.intellij.openapi.util.text.StringUtil;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
@@ -305,7 +307,9 @@ public class Tool implements SchemeElement {
setWorkingDirectory("$ProjectFileDir$");
}
GeneralCommandLine commandLine = new GeneralCommandLine();
GeneralCommandLine commandLine = Registry.is("use.tty.for.external.tools", false)
? new PtyCommandLine().withConsoleMode(true)
: new GeneralCommandLine();
try {
String paramString = MacroManager.getInstance().expandMacrosInString(getParameters(), true, dataContext);
String workingDir = MacroManager.getInstance().expandMacrosInString(getWorkingDirectory(), true, dataContext);
@@ -87,6 +87,9 @@ idea.fix.mac.env=true
idea.fix.mac.env.restartRequired=true
idea.fix.mac.env.description=On Mac, use shell environment for external processes.
use.tty.for.external.tools=false
use.tty.for.external.tools.description=Use command line with TTY support to run 'External Tools'
idea.mac.prevent.app.nap=false
idea.mac.prevent.app.nap.description=Prevent app nap during indexing and inspection