aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/status48
1 files changed, 48 insertions, 0 deletions
diff --git a/tools/status b/tools/status
new file mode 100755
index 0000000..f053ef4
--- /dev/null
+++ b/tools/status
@@ -0,0 +1,48 @@
+#!/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