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

Subsystems: the rest

DORMANTno replies

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

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

From: Gerrit Pape <hidden>
Date: 2016-06-15 22:43:34

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 <redacted>
---
 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

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

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:34

Gerrit Pape [off-list ref] 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?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help