diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2015-06-08 09:06:53 -0400 |
---|---|---|
committer | Edward Thomson <ethomson@microsoft.com> | 2015-06-22 11:59:58 -0400 |
commit | bf8c0a9b91c81be916b1969ff45467798c89f7f5 (patch) | |
tree | 78288028a6a5b52988c058a7fff6a5c7adb91eb7 | |
parent | bd5e59ee72113206e0f0d64853413f7dc41156bf (diff) | |
download | libgit2-bf8c0a9b91c81be916b1969ff45467798c89f7f5.tar.gz |
crlf: script to generate expected crlf data
Include a shell script that will generate the expected CRLF data,
calling git.git to capture its output as a test resource for the
current platform.
-rw-r--r-- | tests/generate_crlf.sh | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/generate_crlf.sh b/tests/generate_crlf.sh new file mode 100644 index 000000000..d3fd1bb9a --- /dev/null +++ b/tests/generate_crlf.sh @@ -0,0 +1,73 @@ +#!/usr/bin/env bash + +set -e + +if [ "$1" == "" -o "$2" == "" ]; then + echo "usage: $0 crlfrepo directory [tempdir]" + exit 1 +fi + +input=$1 +output=$2 +tempdir=$3 + +set -u + +create_repo() { + local input=$1 + local output=$2 + local tempdir=$3 + local systype=$4 + local autocrlf=$5 + local attr=$6 + + local worktree="${output}/${systype}/autocrlf_${autocrlf}" + + if [ "$attr" != "" ]; then + local attrdir=`echo $attr | sed -e "s/ /,/g" | sed -e "s/=/_/g"` + worktree="${worktree},${attrdir}" + fi + + if [ "$tempdir" = "" ]; then + local gitdir="${worktree}/.git" + else + local gitdir="${tempdir}/generate_crlf_${RANDOM}" + fi + + echo "Creating ${worktree}" + mkdir -p "${worktree}" + + git clone --no-checkout --quiet --bare "${input}/.gitted" "${gitdir}" + git --work-tree="${worktree}" --git-dir="${gitdir}" config core.autocrlf ${autocrlf} + + if [ "$attr" != "" ]; then + echo "* ${attr}" >> "${worktree}/.gitattributes" + fi + + git --work-tree="${worktree}" --git-dir="${gitdir}" checkout HEAD + + if [ "$attr" != "" ]; then + rm "${worktree}/.gitattributes" + fi + + if [ "$tempdir" != "" ]; then + rm -rf "${gitdir}" + fi +} + +if [[ `uname -s` == MINGW* ]]; then + systype="windows" +else + systype="posix" +fi + +for autocrlf in true false input; do + for attr in "" text text=auto -text crlf -crlf eol=lf eol=crlf \ + "text eol=lf" "text eol=crlf" \ + "text=auto eol=lf" "text=auto eol=crlf"; do + + create_repo "${input}" "${output}" "${tempdir}" \ + "${systype}" "${autocrlf}" "${attr}" + done +done + |