]> git.wh0rd.org - home.git/blobdiff - .bin/git-rewrite-authors
cros-board: update
[home.git] / .bin / git-rewrite-authors
index 4e4c2bf8b112d9659434834894ecb366d74fdb5e..f35435ed6ea04791ab287626035ef0272aa8a944 100755 (executable)
@@ -2,11 +2,14 @@
 
 tmp=$(mktemp -t "${0##*/}.XXXXXX")
 trap "rm -rf '${tmp}'" EXIT
-cat << \EOF > ${tmp}
+cat <<\EOF >"${tmp}"
 decode() {
        awk -vid="$1" -vtype="$2" '$1 == id {
                match($0, /^[^=]*=\s*([^<]*)<([^>]*)>/, a);
                name = gensub(/\s+$/, "", "g", a[1]);
+               name = gensub(/^"/, "", "g", name);
+               name = gensub(/"$/, "", "g", name);
+               name = gensub(/'\''/, "'\''\\\\'\'''\''", "g", name);
                email = a[2];
                print "export GIT_"type"_NAME='\''" name "'\'';"
                print "export GIT_"type"_EMAIL='\''" email "'\'';"
@@ -26,8 +29,9 @@ if [ ! -e "${author_file}" ] ; then
        echo "error: could not find ${author_file}"
        exit 1
 fi
-git filter-branch \
-       --env-filter ". ${tmp};"' \
-               eval `decode "${GIT_AUTHOR_NAME}" AUTHOR`; \
-               eval `decode "${GIT_COMMITTER_NAME}" COMMITTER`; \
+FILTER_BRANCH_SQUELCH_WARNING=1 \
+exec git filter-branch \
+       --env-filter ". '${tmp}';"' \
+               eval "$(decode "${GIT_AUTHOR_NAME}" AUTHOR)"; \
+               eval "$(decode "${GIT_COMMITTER_NAME}" COMMITTER)"; \
 ' "$@"