summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2015-06-08 09:06:53 -0400
committerEdward Thomson <ethomson@microsoft.com>2015-06-22 11:59:58 -0400
commitbf8c0a9b91c81be916b1969ff45467798c89f7f5 (patch)
tree78288028a6a5b52988c058a7fff6a5c7adb91eb7
parentbd5e59ee72113206e0f0d64853413f7dc41156bf (diff)
downloadlibgit2-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.sh73
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
+