# [PATCH] git-clone: better error message if curl program is missing

2 messages from 2007-09-07 to 2007-09-07. Participants: Gerrit Pape, Junio C Hamano.
Thread: https://gitlist.dev/t/9822

## Gerrit Pape, 2007-09-07 17:13

Subject: [PATCH] git-clone: better error message if curl program is missing
Message-ID: <20070907171400.28590.qmail@d780fac1e27de6.315fe32.mid.smarden.org>
URL: https://gitlist.dev/e/20070907171400.28590.qmail%40d780fac1e27de6.315fe32.mid.smarden.org

```
If the curl program is not available, and git clone is started to clone a
repository through http, this is the output

 Initialized empty Git repository in /tmp/puppet/.git/
 /usr/bin/git-clone: line 37: curl: command not found
 Cannot get remote repository information.
 Perhaps git-update-server-info needs to be run there?

This patch improves the error message by testing for availability of the
curl program before running it, the error output now is

 Initialized empty Git repository in /tmp/puppet/.git/
 The curl program is not available

Adrian Bridgett noticed this and reported through
 http://bugs.debian.org/440976

Signed-off-by: Gerrit Pape <pape@smarden.org>
---
 git-clone.sh |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/git-clone.sh b/git-clone.sh
index 18003ab..834371d 100755
--- a/git-clone.sh
+++ b/git-clone.sh
@@ -34,6 +34,8 @@ fi
 
 http_fetch () {
 	# $1 = Remote, $2 = Local
+	type curl >/dev/null 2>&1 ||
+	    die "The curl program is not available"
 	curl -nsfL $curl_extra_args "$1" >"$2"
 }
 
-- 
1.5.3.1

```

## Junio C Hamano, 2007-09-07 21:19

Subject: Re: [PATCH] git-clone: better error message if curl program is missing
Message-ID: <7vtzq62mxn.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vtzq62mxn.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <20070907171400.28590.qmail@d780fac1e27de6.315fe32.mid.smarden.org>

```
Gerrit Pape <pape@smarden.org> writes:

> If the curl program is not available, and git clone is started to clone a
> repository through http, this is the output
>
>  Initialized empty Git repository in /tmp/puppet/.git/
>  /usr/bin/git-clone: line 37: curl: command not found

Perhaps we should die at this point so that...

>  Cannot get remote repository information.
>  Perhaps git-update-server-info needs to be run there?

the user does not have to see this.

In other words, instead of this:

>  http_fetch () {
>  	# $1 = Remote, $2 = Local
> +	type curl >/dev/null 2>&1 ||
> +	    die "The curl program is not available"
>  	curl -nsfL $curl_extra_args "$1" >"$2"
>  }

something like this, perhaps:

	http_fetch () {
        	# $1 = remote, $2 = local
               	curl -nsfL $curl_extra_args "$1" >"$2" || exit
	}

Then the shell would say "curl: command not found" and we would
stop.

I am just hestating to use "type" there (yeah, I know mergetool
has one but that one is not as close to the core of the workflow
as git-fetch is).

BTW, isn't it a packaging bug not to depend git-fetch on curl?

```
