Blame tests/generate_crlf.sh

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