#!/usr/bin/env bash


y=$(basename $(pwd))
b=$(git branch | grep '\*' | tr '*' ' ')

# Control

all=
year=true

case $1 in
    -v) all=true ;;
esac

if ! [[ $y =~ ^[0-9]*$ ]]; then # Not a year
    year=
    all=true
fi


function year_branches {
    echo "Minues tex files $y on $b:"
    ls -1 $y*.tex | while read f; do
        wc=$(cat $f | sed '/begin{document}/,/end{document}/ p; d' | wc -w)
        echo "  $(printf '%s %4.d' $f $wc)"
    done

    echo "Local branches of $y:"
    git branch | grep "master\|$y" | tr '*' ' ' \
        | xargs -I{} -n1 git log -n1 \
                --pretty=format:"  {} - %h -%d%n      %s%n      (%an, %ad, %cr)"\
                {}
}

function all_branches {
    echo "All branches (commiter date, author date, hash, branch):"
    git branch -a | tr '*' ' ' | grep -v HEAD \
        | xargs -n1 git log -n1 \
                --date=short \
                --pretty=format:'  %cd %ad %h -%d%n' \
        | sort -u
}

if [[ "${0##*/}" == "status" ]]; then
    test -n "$year" && year_branches
    test -n "$all" && all_branches
fi