|
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 |
|