1
0
Fork 0
mirror of https://github.com/Luzifer/ansible-role-version.git synced 2024-12-24 11:31:21 +00:00
ansible-role-version/vendor/gopkg.in/src-d/go-git.v4/utils/blame2humantest.bash

48 lines
1.1 KiB
Bash
Raw Normal View History

#!/bin/bash
set -e
repo=`git remote show origin | grep Fetch | cut -d' ' -f5`
branch="master"
if [ "$#" -eq 1 ] ; then
commit=`git log | head -1 | cut -d' ' -f2`
path=$1
elif [ "$#" -eq 2 ] ; then
commit=$1
path=$2
else
echo "bad number of parameters" > /dev/stderr
echo > /dev/stderr
echo " try with: [commit] path" > /dev/stderr
exit
fi
blames=`git blame --root $path | cut -d' ' -f1`
declare -a blame
i=0
for shortBlame in $blames ; do
blame[$i]=`git show $shortBlame | head -1 | cut -d' ' -f2`
i=`expr $i + 1`
done
# some remotes have the .git, other don't,
# repoDot makes sure all have
repoDot="${repo%.git}.git"
echo -e "\t{\"${repoDot}\", \"${branch}\", \"${commit}\", \"${path}\", concat(&[]string{},"
prev=""
count=1
for i in ${blame[@]} ; do
if [ "${prev}" == "" ] ; then
prev=$i
elif [ "$prev" == "$i" ] ; then
count=`expr $count + 1`
else
echo -e "\t\trepeat(\"${prev}\", $count),"
count=1
prev=$i
fi
done
echo -e "\t\trepeat(\"${prev}\", $count),"
echo -e "\t)},"