#include "pkt-line.h"
static const char peek_remote_usage[] =
-"git-peek-remote [--exec=upload-pack] [host:]directory";
-static const char *exec = "git-upload-pack";
+"git-peek-remote [--upload-pack=<git-upload-pack>] [<host>:]<directory>";
+static const char *uploadpack = "git-upload-pack";
static int peek_remote(int fd[2], unsigned flags)
{
int i, ret;
char *dest = NULL;
int fd[2];
- pid_t pid;
+ struct child_process *conn;
int nongit = 0;
unsigned flags = 0;
char *arg = argv[i];
if (*arg == '-') {
- if (!strncmp("--exec=", arg, 7)) {
- exec = arg + 7;
+ if (!prefixcmp(arg, "--upload-pack=")) {
+ uploadpack = arg + 14;
+ continue;
+ }
+ if (!prefixcmp(arg, "--exec=")) {
+ uploadpack = arg + 7;
continue;
}
if (!strcmp("--tags", arg)) {
if (!dest || i != argc - 1)
usage(peek_remote_usage);
- pid = git_connect(fd, dest, exec);
- if (pid < 0)
- return 1;
+ conn = git_connect(fd, dest, uploadpack, 0);
ret = peek_remote(fd, flags);
close(fd[0]);
close(fd[1]);
- finish_connect(pid);
- return ret;
+ ret |= finish_connect(conn);
+ return !!ret;
}