On Wed, Dec 5, 2018 at 9:43 AM cyg Simple <cygsim...@gmail.com> wrote:
> On 12/5/2018 10:11 AM, David Karr wrote: > > On Tue, Dec 4, 2018 at 12:52 PM Marco Atzeri <marco.atz...@gmail.com> > wrote: > > > >> Am 04.12.2018 um 21:41 schrieb David Karr: > >>> "CYGWIN_NT-6.1 WACDTL03DK068X 2.9.0(0.318/5/3)" > >>> > >>> I installed a version of "kubectl" for windows, and I use it > extensively > >> in > >>> Cygwin bash for scripting command-line automation. In general, this > works > >>> perfectly fine. I even use the same scripting in a Linux VM. > >>> > >>> I'm seeing an issue with one script that works fine in the Linux VM, > but > >>> not in Cygwin. > >>> > >>> The command line is approximately this: > >>> > >>> kubectl exec pod -c container -i -t -- grep "string" > >> stuff.properties > >>> 2>&1 | sed -e 's/^propname=//' > >>> > >>> In Linux, this works perfectly fine. In Cygwin, it says "stdout is > not a > >>> tty". > >>> > >>> I haven't updated my local Cygwin installation for quite a while. I'd > >>> prefer not to, unless there is a strong chance this kind of thing would > >> be > >>> fixed. > >>> > >> > >> as kubectl is not a Cygwin program, it is not aware of cygwin pty. > >> You can try to use winpty to overcome the problem. > >> > >> https://github.com/rprichard/winpty > >> > >> > >> > > It turns out that not only had I already used winpty for similar > > functionality, it was actually in place in the pipeline when I tried to > do > > this. When I turned on debugging output, it showed that kubectl was > > already being wrapped by winpty when it reported "stdout is not a tty". > > However, this was one shell script wrapper deeper than I usually call it. > > Does it matter whether winpty is called from the shell script I'm > calling, > > or from the script being called by the script I'm calling? > > Your query got me interested in looking and I believe that winpty needs > to be at the front of all the commands so that it can communicate with > mintty properly. To overcome the need to remember you could add an > alias to execute the command; `alias FOO="winpty FOO"'. > Sigh. What a mess. I can't get this to work. It was easy enough when a single script has to execute "kubectl", having "winpty" prefix that call, but I'm trying to write a script that calls that other script, and even in a pipeline. If I have "winpty" prefix the call to the script that calls "kubectl", it says: winpty: error: cannot start '...': Not found in PATH When I changed it so it references the absolute path, it then says "%1 is not a valid Win32 application. (error 0xc1)". So, this makes it clear that winpty can only directly execute Windows applications, which makes sense. So how can I call a Windows application from more than just the top-level script? -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple