# Set GIT_AUTHOR_NAME etc from dotfiles in the profile. function git_commit_tree() { local WHO=$1; shift local who="$(echo $WHO | tr '[[:upper:]]' '[[:lower:]]')" local WHAT= for WHAT in EMAIL NAME; do local what="$(echo $WHAT | tr '[[:upper:]]' '[[:lower:]]')" local where= # Look in $HOME then $PROFILE_HOME. for where in '~' '$PROFILE_HOME'; do eval local value=\$\(\<${where}/".git_${who}_${what}"\) 2>/dev/null if [ -z "$value" ]; then # COMMITTER defaults to AUTHOR. if [ "$WHO" = "COMMITTER" ]; then eval value="\$GIT_AUTHOR_${WHAT}" fi # Fall back to generic file. if [ -z "$value" ]; then eval value=\$\(\<\$${where}/".git_${what}"\) 2>/dev/null fi fi if [ -n "$value" ]; then eval export "GIT_${WHO}_${WHAT}=\$value" # Skip next location. break fi done done } git_commit_tree AUTHOR git_commit_tree COMMITTER unset git_commit_tree