cg-commit: Move author picking to cg-Xlib
PATCH 1/3 cg-commit: Move author picking to cg-Xlib
Adds pick_author utility function to cg-Xlib that uses the author line from git-cat-file output to print a string that sets the GIT_AUTHOR_* env variables. This string should then be eval'd by the caller.
Signed-off-by Jonas Fonseca <[email protected]>
---
commit 5095aca7013d87ccdb08dad20a9fb93d7465d33d
tree 9ec064a96718b937d373769c52d830b8c3a6daca
parent d3cabc9974357947eac035d613557d4318b85f9f
author Jonas Fonseca <[email protected]> Tue, 07 Feb 2006 23:05:19 +0100 committer Jonas Fonseca <[email protected]> Tue, 07 Feb 2006 23:05:19 +0100
cg-Xlib | 26 ++++++++++++++++++++++++++ cg-commit | 28 +--------------------------- 2 files changed, 27 insertions(+), 27 deletions(-)
cg-Xlib +26 -0
@@ -236,6 +236,32 @@ list_untracked_files() git-ls-files -z --others $listdirs "${EXCLUDE[@]}" } +pick_author() +{ + local pick_author_script=' + /^author /{ + s/'\''/'\''\\'\'\''/g + h + s/^author \([^<]*\) <[^>]*> .*$/\1/ + s/'\''/'\''\'\'\''/g + s/.*/export GIT_AUTHOR_NAME='\''&'\''/p + + g + s/^author [^<]* <\([^>]*\)> .*$/\1/ + s/'\''/'\''\'\'\''/g + s/.*/export GIT_AUTHOR_EMAIL='\''&'\''/p + + g + s/^author [^<]* <[^>]*> \(.*\)$/\1/ + s/'\''/'\''\'\'\''/g + s/.*/export GIT_AUTHOR_DATE='\''&'\''/p + + q + } + ' + LANG=C LC_ALL=C sed -ne "$pick_author_script" +} + # Usage: showdate SECONDS TIMEZONE [FORMAT] # Display date nicely based on how GIT stores it. # Save the date to $_showdate
cg-commit +1 -27
@@ -276,33 +276,7 @@ for msg in "${msgs[@]}"; do done if [ "$copy_commit" ]; then - pick_author_script=' - /^author /{ - s/'\''/'\''\\'\'\''/g - h - s/^author \([^<]*\) <[^>]*> .*$/\1/ - s/'\''/'\''\'\'\''/g - s/.*/GIT_AUTHOR_NAME='\''&'\''/p - - g - s/^author [^<]* <\([^>]*\)> .*$/\1/ - s/'\''/'\''\'\'\''/g - s/.*/GIT_AUTHOR_EMAIL='\''&'\''/p - - g - s/^author [^<]* <[^>]*> \(.*\)$/\1/ - s/'\''/'\''\'\'\''/g - s/.*/GIT_AUTHOR_DATE='\''&'\''/p - - q - } - ' - set_author_env="$(git-cat-file commit "$copy_commit" | - LANG=C LC_ALL=C sed -ne "$pick_author_script")" - eval "$set_author_env" - export GIT_AUTHOR_NAME - export GIT_AUTHOR_EMAIL - export GIT_AUTHOR_DATE + eval "$(git-cat-file commit "$copy_commit" | pick_author)" git-cat-file commit "$copy_commit" | sed -e '1,/^$/d' written=1 fi >>"$LOGMSG"
Signature · 1 line
Jonas Fonseca