#!/bin/sh
#
# Copyright (c) 2005, Junio C Hamano
#
# Called by git-clone-script
# Exits 2 when the remote site does not support dumb server protocol.

# Usage: git-clone-dumb-http <remote-repo> <local-dir>

R=${1?"remote repository"} D=${2?"local directory"}

if [ -n "$GIT_SSL_NO_VERIFY" ]; then
    curl_extra_args="-k"
fi
http_fetch () {
	# $1 = Remote, $2 = Local
	curl -ns $curl_extra_args "$1" >"$2"
}

cd "$D" && 
clone_tmp=".git/clone-tmp" &&
mkdir -p "$clone_tmp" || exit 1
trap "rm -rf .git/clone-tmp" 0 1 2 3 15

http_fetch "$R/info/refs" "$clone_tmp/refs" &&
http_fetch "$R/objects/info/packs" "$clone_tmp/packs" || exit 2

# We do not have to worry about rev-cache when cloning.
# http_fetch "$R/info/rev-cache" "$clone_tmp/rev-cache" 

# Clone packs
while read type name
do
	case "$type" in
	P) ;;
	*) continue ;;
	esac &&

	idx=`expr "$name" : '\(.*\)\.pack'`.idx
	http_fetch "$R/objects/pack/$name" ".git/objects/pack/$name" &&
	http_fetch "$R/objects/pack/$idx" ".git/objects/pack/$idx" &&
	git-verify-pack ".git/objects/pack/$idx" || exit 1

done <"$clone_tmp/packs"

# Then clone refs.
while read sha1 refname
do
	name=`expr "$refname" : 'refs/\(.*\)'` &&
	git-http-pull -v -a -w "$name" "$name" "$R/" || exit 1
done <"$clone_tmp/refs"
