Cyril
Cyril

Reputation: 390

curl command in git-bash

I have a script written in bash and tested working in Linux (CentOS 7) and on MacOS. The script uses cURL to interact with a REST API compliant data platform (XNAT).

I was hoping that Windows users could use the same script within git-bash that comes packaged with Git for Windows. Unfortunately there seems to be an issue when using cURL in git-bash.

The first use I make of cURL is to retrieve a JSESSION cookie:

COOKIE=`curl -k -u $USERNAME https://theaddress/JSESSION`

On Linux, this asks the user for password and stores the cookie in COOKIE. In git-bash, issuing the command hangs, until using a "ctrl + C" to interrupt it. Strangely at that point the query message for the password is displayed, but too late, the script has terminated.

I have a suspicion that this may have to do with CR or LF issues, but cannot find some info I understand regarding this.

Any pointers would be welcome !

Thank you

EDIT: It appears the above command works fine if I pass the password in the command like this:

COOKIE=`curl -k -u $USERNAME:$PASSWORD https://theaddress/JSESSION`

However, as pointed here: Using cURL with a username and password? I would rather avoid having the user typing their password as a command argument.

So the question is now "why is cURL not prompting for a password when I use the first command?" when in git-bash on Windows, while that command behaves as expected in Linux or MacOS:

 COOKIE=`curl -k -u $USERNAME https://theaddress/JSESSION`

Upvotes: 12

Views: 45220

Answers (1)

Cyril
Cyril

Reputation: 390

Ending up replying to my own question, hope this may be useful to someone else.

It appears this issue is a known problem when running cURL from within git-bash, according to this thread: https://github.com/curl/curl/issues/573

In particular, see the answer of dscho on 30 Dec 2015:

The problem is the terminal emulator we use with Git Bash since Git for Windows 2.5, MinTTY. This terminal emulator is not associated with a Win32 Console, therefore the user does not see anything when cURL wants to interact with the user via said Console.

This issue has a workaround, which is documented here: https://github.com/git-for-windows/build-extra/blob/master/ReleaseNotes.md#known-issues

The workaround is to run curl via winpty as follows: winpty curl [arguments]

Not an issue with CR or LF after all.

Soooo, git-bash may not be the magic-bullet (tm) to run my bash scripts in Windows with zero effort. Sigh...

Upvotes: 16

Related Questions