Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit bf8c0a9

Browse files
ethomsonEdward Thomson
authored and
Edward Thomson
committed
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.
1 parent bd5e59e commit bf8c0a9

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

tests/generate_crlf.sh

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
if [ "$1" == "" -o "$2" == "" ]; then
6+
echo "usage: $0 crlfrepo directory [tempdir]"
7+
exit 1
8+
fi
9+
10+
input=$1
11+
output=$2
12+
tempdir=$3
13+
14+
set -u
15+
16+
create_repo() {
17+
local input=$1
18+
local output=$2
19+
local tempdir=$3
20+
local systype=$4
21+
local autocrlf=$5
22+
local attr=$6
23+
24+
local worktree="${output}/${systype}/autocrlf_${autocrlf}"
25+
26+
if [ "$attr" != "" ]; then
27+
local attrdir=`echo $attr | sed -e "s/ /,/g" | sed -e "s/=/_/g"`
28+
worktree="${worktree},${attrdir}"
29+
fi
30+
31+
if [ "$tempdir" = "" ]; then
32+
local gitdir="${worktree}/.git"
33+
else
34+
local gitdir="${tempdir}/generate_crlf_${RANDOM}"
35+
fi
36+
37+
echo "Creating ${worktree}"
38+
mkdir -p "${worktree}"
39+
40+
git clone --no-checkout --quiet --bare "${input}/.gitted" "${gitdir}"
41+
git --work-tree="${worktree}" --git-dir="${gitdir}" config core.autocrlf ${autocrlf}
42+
43+
if [ "$attr" != "" ]; then
44+
echo "* ${attr}" >> "${worktree}/.gitattributes"
45+
fi
46+
47+
git --work-tree="${worktree}" --git-dir="${gitdir}" checkout HEAD
48+
49+
if [ "$attr" != "" ]; then
50+
rm "${worktree}/.gitattributes"
51+
fi
52+
53+
if [ "$tempdir" != "" ]; then
54+
rm -rf "${gitdir}"
55+
fi
56+
}
57+
58+
if [[ `uname -s` == MINGW* ]]; then
59+
systype="windows"
60+
else
61+
systype="posix"
62+
fi
63+
64+
for autocrlf in true false input; do
65+
for attr in "" text text=auto -text crlf -crlf eol=lf eol=crlf \
66+
"text eol=lf" "text eol=crlf" \
67+
"text=auto eol=lf" "text=auto eol=crlf"; do
68+
69+
create_repo "${input}" "${output}" "${tempdir}" \
70+
"${systype}" "${autocrlf}" "${attr}"
71+
done
72+
done
73+

0 commit comments

Comments
 (0)