# HG changeset patch # User haftmann # Date 1396684984 -7200 # Node ID 04d0083cb9e5532c6eb662536b025a508d229927 # Parent b9baecff06845537b2e023e409bd8a479099ac41 churning pie charts (with non-canonical prerequisites!) diff -r b9baecff0684 -r 04d0083cb9e5 Admin/churn --- a/Admin/churn Sat Apr 05 10:03:03 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -#!/bin/bash - -ADMIN="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; pwd)" -cd "$ADMIN" -hg churn --aliases user-aliases diff -r b9baecff0684 -r 04d0083cb9e5 Admin/lib/Tools/churn --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Admin/lib/Tools/churn Sat Apr 05 10:03:04 2014 +0200 @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# +# Author: Florian Haftmann, TU Muenchen +# +# DESCRIPTION: mercurial churn statistics for specified aliases file + +ALIAS="${1:-$ISABELLE_HOME/Admin/user-aliases}" +shift + +cd "$(dirname "$ALIAS")" + +hg churn --aliases "$ALIAS" "$@" diff -r b9baecff0684 -r 04d0083cb9e5 Admin/lib/Tools/churn_pie --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Admin/lib/Tools/churn_pie Sat Apr 05 10:03:04 2014 +0200 @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# +# Author: Florian Haftmann, TU Muenchen +# +# DESCRIPTION: pie chart with mercurial churn statistics for specified aliases file + +ALIAS="${1:-$ISABELLE_HOME/Admin/user-aliases}" +shift + +SCRIPT="$ISABELLE_HOME/Admin/lib/scripts/churn_pie" + +cd "$(dirname "$ALIAS")" + +hg churn --aliases "$ALIAS" | "$SCRIPT" "$@" diff -r b9baecff0684 -r 04d0083cb9e5 Admin/lib/scripts/churn_pie --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Admin/lib/scripts/churn_pie Sat Apr 05 10:03:04 2014 +0200 @@ -0,0 +1,23 @@ +#!/usr/bin/python + +import re +from pychart import theme, pie_plot, area, fill_style, arrow, legend +import sys + +re_entry = re.compile(R'^(.*\S+)\s+(\d+)\s*\**\s*$') + +theme.get_options() + +data = [] + +for line in sys.stdin.readlines(): + match = re_entry.match(line) + data.append((match.group(1), int(match.group(2)))) + +plot = pie_plot.T(data = data, arc_offsets = [], + shadow = (2, -2, fill_style.gray50), label_offset = 10, arrow_style = arrow.a3) + +ar = area.T(size = (500, 500), legend = legend.T(), x_grid_style = None, y_grid_style = None) +ar.add_plot(plot) + +ar.draw()