Blame tests/generate_crlf.sh

Packit ae9e2a
#!/usr/bin/env bash
Packit ae9e2a
Packit ae9e2a
set -e
Packit ae9e2a
Packit ae9e2a
if [ "$1" == "" -o "$2" == "" ]; then
Packit ae9e2a
	echo "usage: $0 crlfrepo directory [tempdir]"
Packit ae9e2a
	exit 1
Packit ae9e2a
fi
Packit ae9e2a
Packit ae9e2a
input=$1
Packit ae9e2a
output=$2
Packit ae9e2a
tempdir=$3
Packit ae9e2a
Packit ae9e2a
set -u
Packit ae9e2a
Packit ae9e2a
create_repo() {
Packit ae9e2a
	local input=$1
Packit ae9e2a
	local output=$2
Packit ae9e2a
	local tempdir=$3
Packit ae9e2a
	local systype=$4
Packit ae9e2a
	local autocrlf=$5
Packit ae9e2a
	local attr=$6
Packit ae9e2a
Packit ae9e2a
	local worktree="${output}/${systype}/autocrlf_${autocrlf}"
Packit ae9e2a
Packit ae9e2a
	if [ "$attr" != "" ]; then
Packit ae9e2a
		local attrdir=`echo $attr | sed -e "s/ /,/g" | sed -e "s/=/_/g"`
Packit ae9e2a
		worktree="${worktree},${attrdir}"
Packit ae9e2a
	fi
Packit ae9e2a
Packit ae9e2a
	if [ "$tempdir" = "" ]; then
Packit ae9e2a
		local gitdir="${worktree}/.git"
Packit ae9e2a
	else
Packit ae9e2a
		local gitdir="${tempdir}/generate_crlf_${RANDOM}"
Packit ae9e2a
	fi
Packit ae9e2a
Packit ae9e2a
	echo "Creating ${worktree}"
Packit ae9e2a
	mkdir -p "${worktree}"
Packit ae9e2a
Packit ae9e2a
	git clone --no-checkout --quiet --bare "${input}/.gitted" "${gitdir}"
Packit ae9e2a
	git --work-tree="${worktree}" --git-dir="${gitdir}" config core.autocrlf ${autocrlf}
Packit ae9e2a
Packit ae9e2a
	if [ "$attr" != "" ]; then
Packit ae9e2a
		echo "* ${attr}" >> "${worktree}/.gitattributes"
Packit ae9e2a
	fi
Packit ae9e2a
Packit ae9e2a
	git --work-tree="${worktree}" --git-dir="${gitdir}" checkout HEAD
Packit ae9e2a
Packit ae9e2a
	if [ "$attr" != "" ]; then
Packit ae9e2a
		rm "${worktree}/.gitattributes"
Packit ae9e2a
	fi
Packit ae9e2a
Packit ae9e2a
	if [ "$tempdir" != "" ]; then
Packit ae9e2a
		rm -rf "${gitdir}"
Packit ae9e2a
	fi
Packit ae9e2a
}
Packit ae9e2a
Packit ae9e2a
if [[ `uname -s` == MINGW* ]]; then
Packit ae9e2a
	systype="windows"
Packit ae9e2a
else
Packit ae9e2a
	systype="posix"
Packit ae9e2a
fi
Packit ae9e2a
Packit ae9e2a
for autocrlf in true false input; do
Packit ae9e2a
	for attr in "" text text=auto -text crlf -crlf eol=lf eol=crlf \
Packit ae9e2a
		"text eol=lf" "text eol=crlf" \
Packit ae9e2a
		"text=auto eol=lf" "text=auto eol=crlf"; do
Packit ae9e2a
Packit ae9e2a
		create_repo "${input}" "${output}" "${tempdir}" \
Packit ae9e2a
			"${systype}" "${autocrlf}" "${attr}"
Packit ae9e2a
	done
Packit ae9e2a
done
Packit ae9e2a