Files
qt6-migration-pipeline/specs/external/git_with_committer
T

92 lines
2.3 KiB
Bash
Executable File

#!/bin/sh
#
# $Id$
# $HeadURL$
#
# alias git git_with_commiter
#
function setupAuthorCommiter() {
# predefined users
declare -a users=( \
'Christian Ehrlicher' \
'Hanna Rathje' \
'Hannes Bäuerle' \
'Hans-Jürgen Lampe' \
'Iuliana Ojog' \
'Malte Diers' \
'Mike Wille' \
'Norbert Thoden' \
'Patrick Galler' \
'Patric Karwat' \
)
# the users in the last 1000 commits
committers=`git log --pretty=format:%aN -n 1000 | sort -u `
# join arrays committers and users
while read -r line; do
users=("${users[@]}" "$line")
done <<< "$committers"
# make users unique
IFS=$'\n' committers=($(sort -u <<<"${users[*]}"))
# the last committer
last_committer=`git log --pretty=format:%aN -n 1`
# show possible users
echo -e "\e[31mAvailable committers:\e[0m"
defaultId=0
for ((i=0; i < ${#committers[@]};i++)) {
idx=$((i + 1))
if [ "${committers[$i]}" = "$last_committer" ] ; then
defaultId=$idx
echo -e "\e[32m $idx - ${committers[$i]}\e[0m (default)"
else
echo " $idx - ${committers[$i]}"
fi
}
echo " 0 - new committer"
echo "enter a number for the committer to use or nothing for the last committer"
# now ask for the committer to use
while [ true ]; do
echo -n "Please enter number [default=${defaultId}]: "
read line < /dev/stdin
# empty -> default
if [ -z $line ] ; then
line=$defaultId
fi
# its a digit and between the valid range
if [ -z "${line##[0-9]*}" ] && [ "$line" -ge 0 ] && [ "$line" -le "${#committers[@]}" ]; then
break
fi
done
if [ $line -eq 0 ] ; then
echo -n "Please enter full committer name:"
read git_name < /dev/stdin
else
git_name=${committers[$((line - 1))]}
fi
git_email="${git_name// /.}@lifemaps.com"
echo "Using '$git_name ($git_email)' as author and committer"
export GIT_AUTHOR_NAME="$git_name"
export GIT_AUTHOR_EMAIL="$git_email"
export GIT_COMMITTER_NAME="$git_name"
export GIT_COMMITTER_EMAIL="$git_email"
}
if [ $# -ge 1 ] ; then
gitopt="$1"
case $gitopt in
commit) setupAuthorCommiter ;;
*);;
esac
fi
exec git "$@"