]>
Commit | Line | Data |
---|---|---|
1 | #!/bin/sh | |
2 | ||
3 | tmp=$(mktemp -t "${0##*/}.XXXXXX") | |
4 | trap "rm -rf '${tmp}'" EXIT | |
5 | cat << \EOF > ${tmp} | |
6 | decode() { | |
7 | awk -vid="$1" -vtype="$2" '$1 == id { | |
8 | match($0, /^[^=]*=\s*([^<]*)<([^>]*)>/, a); | |
9 | name = gensub(/\s+$/, "", "g", a[1]); | |
10 | name = gensub(/^"/, "", "g", name); | |
11 | name = gensub(/"$/, "", "g", name); | |
12 | name = gensub(/'\''/, "'\''\\\\'\'''\''", "g", name); | |
13 | email = a[2]; | |
14 | print "export GIT_"type"_NAME='\''" name "'\'';" | |
15 | print "export GIT_"type"_EMAIL='\''" email "'\'';" | |
16 | }' "${author_file}" | |
17 | } | |
18 | EOF | |
19 | ||
20 | for x in cvs-authors authors ; do | |
21 | export author_file="${PWD}/.git/${x}" | |
22 | [ -e "${author_file}" ] && break | |
23 | if [ -L "${author_file}" ] ; then | |
24 | echo "error: ${author_file} is a broken link" | |
25 | exit 1 | |
26 | fi | |
27 | done | |
28 | if [ ! -e "${author_file}" ] ; then | |
29 | echo "error: could not find ${author_file}" | |
30 | exit 1 | |
31 | fi | |
32 | git filter-branch \ | |
33 | --env-filter ". '${tmp}';"' \ | |
34 | eval "$(decode "${GIT_AUTHOR_NAME}" AUTHOR)"; \ | |
35 | eval "$(decode "${GIT_COMMITTER_NAME}" COMMITTER)"; \ | |
36 | ' "$@" |