<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">OK, so, tl;dr is it seems you're using
Debug.exec(etc) to launch the command, in this case bash, which
then gives you an IProcess. You feed further input into the
IProcess to get the desired result, and I'm assuming you wire in
the console support on your own via stream listeners. <br>
<br>
<br>
So you're not using any of org.eclipse.tm.terminal stuff. <br>
<br>
I've played with your utility class
<a class="moz-txt-link-freetext" href="https://github.com/gorkem/thym/blob/use_cli/plugins/org.eclipse.thym.core/src/org/eclipse/thym/core/internal/util/ExternalProcessUtility.java">https://github.com/gorkem/thym/blob/use_cli/plugins/org.eclipse.thym.core/src/org/eclipse/thym/core/internal/util/ExternalProcessUtility.java</a>
and it also seems to not function if the process being run is
expecting the caller to be a TTY terminal (specifically, vagrant
up for cdk2b3 not from the openshift-vagrant repo but the standard
distribution). <br>
<br>
It seems to me that Runtime.exec(etc), Debug.exec(etc), the
external tools launch configuration, and all other solutions are
incapable of being treated as a tty. Only the
org.eclipse.tm.terminal stuff is capable of implementing the
additional requirements to be treated as a tty... however, I feel
that using o.e.tm.terminal on a more regular basis is misguided.
For the first part, it becomes difficult to read its output. The
user can suddenly get involved in the process by typing things in
at inopportune moments. It is impossible to use without the UI, so
can't be done in the background, as well as a number of other
issues that come as consequences of those. <br>
<br>
In short, it seems applications requiring a TTY environment are
really not that many, and the fact that vagrant-registration
requires it at all is very strange. It most likely needs the TTY
functionality to accept a password without showing it, but I can't
seem to figure out if thats just a guess or not. <br>
<br>
Either way, I'm going to stick with our current way of doing
things, either via Runtime.exec when we want it in the background,
ro external-tools launch config when we want the command's output
to be shown in a console. <br>
<br>
- Rob<br>
<br>
<br>
On 12/08/2015 08:02 AM, Gorkem Ercan wrote:<br>
</div>
<blockquote
cite="mid:CAL5eSJGFgYB44oLcoeSJXa09ZsbRExmGQK4ei7PY9EC1YQOnTw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div><br>
</div>
For Node.js based tools we needed a fully configured PATH
because it is often the case those tools will make calls
to other apps. <br>
</div>
Basically our strategy is to start a full bash/cmd shell
(notice -l for bash) which will be configured fully. [1] <br>
then execute the commands [2]<br>
</div>
<div>finally issue an exit to leave the shell [3]<br>
<br>
</div>
<div>The only downside is you can not easily capture the
process exit code.<br>
<br>
</div>
<div>The code examples are from the initial implementation
that I have done for CordovaCLI and uses eclipse libraries
for starting the process however it can be implemented
equally same using the Runtime.exec too. [4]<br>
</div>
<div><br>
<br>
[1] <a moz-do-not-send="true"
href="https://github.com/gorkem/thym/blob/use_cli/plugins/org.eclipse.thym.core/src/org/eclipse/thym/core/internal/cordova/CordovaCLI.java#L175">https://github.com/gorkem/thym/blob/use_cli/plugins/org.eclipse.thym.core/src/org/eclipse/thym/core/internal/cordova/CordovaCLI.java#L175</a><br>
[2] <a moz-do-not-send="true"
href="https://github.com/gorkem/thym/blob/use_cli/plugins/org.eclipse.thym.core/src/org/eclipse/thym/core/internal/cordova/CordovaCLI.java#L135">https://github.com/gorkem/thym/blob/use_cli/plugins/org.eclipse.thym.core/src/org/eclipse/thym/core/internal/cordova/CordovaCLI.java#L135</a><br>
[3] <a moz-do-not-send="true"
href="https://github.com/gorkem/thym/blob/use_cli/plugins/org.eclipse.thym.core/src/org/eclipse/thym/core/internal/cordova/CordovaCLI.java#L139">https://github.com/gorkem/thym/blob/use_cli/plugins/org.eclipse.thym.core/src/org/eclipse/thym/core/internal/cordova/CordovaCLI.java#L139</a><br>
</div>
[4] <a moz-do-not-send="true"
href="https://github.com/gorkem/js-parser-benchmarks/blob/master/src/main/java/org/jboss/tools/benchmark/parsers/esprima/EsprimaParser.java#L70">https://github.com/gorkem/js-parser-benchmarks/blob/master/src/main/java/org/jboss/tools/benchmark/parsers/esprima/EsprimaParser.java#L70</a><br>
--<br>
</div>
Gorkem<br>
<div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Dec 8, 2015 at 2:09 AM, Max
Rydahl Andersen <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:manderse@redhat.com" target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:manderse@redhat.com">manderse@redhat.com</a></a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="auto">
<div>Question relevant on the list. <br>
<br>
/max
<div><a moz-do-not-send="true"
href="http://about.me/maxandersen"
target="_blank">http://about.me/maxandersen</a></div>
<div><br>
</div>
</div>
<div>
<div class="h5">
<div><br>
On 08 Dec 2015, at 05:09, Rob Stryker <<a
moz-do-not-send="true"
href="mailto:rob.stryker@jboss.com"
target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:rob.stryker@jboss.com">rob.stryker@jboss.com</a></a>>
wrote:<br>
<br>
</div>
<blockquote type="cite">
<div>
<div>Hey Guys:<br>
<br>
Can you clarify how you guys call filesystem
commands like npm and cordova? <br>
<br>
In the CDK tools as currently coded, we do
two different things. One, is that we
create an "External Tools Launch
Configuration" which runs the command. This
requires knowing the actual location of the
executable. The other is to simply call
Runtime.exec(etc) and get a Process from it.
<br>
<br>
The external tools launch config is useful
because it opens a console for us and means
we don't have to do any of the wiring, so we
use that when we know we want the commands
to be visible to the user. We use the
runtime.exec() in the background for
commands that we want to run without showing
the user (for example if we did a vagrant
adbinfo)<br>
<br>
How do you all do it?<br>
<br>
- Rob Stryker<br>
<br>
<br>
On 12/03/2015 11:36 AM, Max Rydahl Andersen
wrote:<br>
</div>
<blockquote type="cite">
<p>In <a moz-do-not-send="true"
href="https://github.com/jbosstools/jbosstools-openshift/pull/831#discussion_r46575476"
target="_blank">plugins/org.jboss.tools.openshift.cdk.server/src/org/jboss/tools/openshift/cdk/server/core/internal/CDKConstantUtility.java</a>:</p>
<pre style="color:rgb(85,85,85)">>         public static String getVagrantLocation() {
> -                return VAGRANT_LOCATION_LINUX;
> +                return findVagrantLocation();
</pre>
<p>im wondering if we are better of
launching this similar to what <a
moz-do-not-send="true"
href="https://github.com/gercan"
target="_blank">@gercan</a> and <a
moz-do-not-send="true"
href="https://github.com/ibuziuk"
target="_blank">@ibuziuk</a> been doing
for npm and cordova cli tools.</p>
<p>i.e. call out via bash or cmd.exe making
it up to the user to have it properly
configured in PATH</p>
<p
style="font-size:small;color:rgb(102,102,102)">—<br>
Reply to this email directly or <a
moz-do-not-send="true"
href="https://github.com/jbosstools/jbosstools-openshift/pull/831/files#r46575476"
target="_blank">view it on GitHub</a>.<img
moz-do-not-send="true" alt=""
src="https://github.com/notifications/beacon/AAmeb6mIhPgXeM33fzWC8KQs43GH6aibks5pMGbygaJpZM4Gtp6v.gif"
height="1" width="1"></p>
<div>
<div> </div>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>