#!/bin/sh
#

usage () {
    echo >&2 "usage: $0 [--heads] [--tags] [-u|--upload-pack <upload-pack>]"
    echo >&2 "          <repository> <refs>..."
    exit 1;
}

die () {
    echo >&2 "$*"
    exit 1
}

exec=
while case "$#" in 0) break;; esac
do
  case "$1" in
  -h|--h|--he|--hea|--head|--heads)
  heads=heads; shift ;;
  -t|--t|--ta|--tag|--tags)
  tags=tags; shift ;;
  -u|--u|--up|--upl|--uploa|--upload|--upload-|--upload-p|--upload-pa|\
  --upload-pac|--upload-pack)
	shift
	exec="--upload-pack=$1"
	shift;;
  -u=*|--u=*|--up=*|--upl=*|--uplo=*|--uploa=*|--upload=*|\
  --upload-=*|--upload-p=*|--upload-pa=*|--upload-pac=*|--upload-pack=*)
	exec=--upload-pack=$(expr "z$1" : 'z-[^=]*=\(.*\)')
	shift;;
  --)
  shift; break ;;
  -*)
  usage ;;
  *)
  break ;;
  esac
done

case "$#" in 0) usage ;; esac

case ",$heads,$tags," in
,,,) heads=heads tags=tags other=other ;;
esac

. git-parse-remote
peek_repo="$(get_remote_url "$@")"
shift

tmp=.ls-remote-$$
trap "rm -fr $tmp-*" 0 1 2 3 15
tmpdir=$tmp-d

case "$peek_repo" in
http://* | https://* | ftp://* )
        if [ -n "$GIT_SSL_NO_VERIFY" ]; then
            curl_extra_args="-k"
        fi
	if [ -n "$GIT_CURL_FTP_NO_EPSV" -o \
		"`git-config --bool http.noEPSV`" = true ]; then
		curl_extra_args="${curl_extra_args} --disable-epsv"
	fi
	curl -nsf $curl_extra_args --header "Pragma: no-cache" "$peek_repo/info/refs" ||
		echo "failed	slurping"
	;;

rsync://* )
	mkdir $tmpdir &&
	rsync -rlq "$peek_repo/HEAD" $tmpdir &&
	rsync -rq "$peek_repo/refs" $tmpdir || {
		echo "failed	slurping"
		exit
	}
	head=$(cat "$tmpdir/HEAD") &&
	case "$head" in
	ref:' '*)
		head=$(expr "z$head" : 'zref: \(.*\)') &&
		head=$(cat "$tmpdir/$head") || exit
	esac &&
	echo "$head	HEAD"
	(cd $tmpdir && find refs -type f) |
	while read path
	do
		cat "$tmpdir/$path" | tr -d '\012'
		echo "	$path"
	done &&
	rm -fr $tmpdir
	;;

* )
	if test -f "$peek_repo" ; then
		git bundle list-heads "$peek_repo" ||
		echo "failed	slurping"
	else
		git-peek-remote $exec "$peek_repo" ||
		echo "failed	slurping"
	fi
	;;
esac |
sort -t '	' -k 2 |
while read sha1 path
do
	case "$sha1" in
	failed)
		exit 1 ;;
	esac
	case "$path" in
	refs/heads/*)
		group=heads ;;
	refs/tags/*)
		group=tags ;;
	*)
		group=other ;;
	esac
	case ",$heads,$tags,$other," in
	*,$group,*)
		;;
	*)
		continue;;
	esac
	case "$#" in
	0)
		match=yes ;;
	*)
		match=no
		for pat
		do
			case "/$path" in
			*/$pat )
				match=yes
				break ;;
			esac
		done
	esac
	case "$match" in
	no)
		continue ;;
	esac
	echo "$sha1	$path"
done
