From ee5ad3d650942cd6e48d04bea95c0df8c9b4ad62 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Tue, 16 Apr 2013 18:38:24 +0100 Subject: Rewrite in Python, with proper reporting --- license-summary | 52 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/license-summary b/license-summary index a0def72..9dda1c0 100755 --- a/license-summary +++ b/license-summary @@ -1,5 +1,51 @@ -#!/bin/sh +#!/usr/bin/python +# +# Copyright 2013 Lars Wirzenius +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# =*= License: GPL-3+ =*= -set -eu -sed -n '/.*=\*= [Ll]icen[cs]es\?: \(.*\)=\*=.*/s//\1/p' "$@" +# sed -n ' "$@" + + +import cliapp +import re + + +__version__ = '0.0' + + +class LicenseSummary(cliapp.Application): + + def setup(self): + self.pat = re.compile(r'=\*= [Ll]icen[cs]es?:\s*(?P\S.*\S)\s*=\*=') + self.summaries = {} + + def cleanup(self): + for s in sorted(self.summaries.keys()): + ss = sorted(self.summaries[s]) + self.output.write('%s (%d):\n' % (s, len(ss))) + for filename in ss: + self.output.write('\t%s\n' % filename) + + def process_input_line(self, filename, line): + m = self.pat.search(line) + if m: + s = m.group('summary') + self.summaries[s] = self.summaries.get(s, []) + [filename] + + +LicenseSummary(version=__version__).run() -- cgit v1.2.1