diff options
author | Lars Wirzenius <liw@liw.fi> | 2013-04-16 18:38:24 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2013-04-16 18:38:24 +0100 |
commit | ee5ad3d650942cd6e48d04bea95c0df8c9b4ad62 (patch) | |
tree | 6649cd19c099368fb20cb36ee43dd61f8b7155b5 /license-summary | |
parent | 611c4176fcea0bbd4b569dd115f058aeb5e390fd (diff) | |
download | license-summary-ee5ad3d650942cd6e48d04bea95c0df8c9b4ad62.tar.gz |
Rewrite in Python, with proper reporting
Diffstat (limited to 'license-summary')
-rwxr-xr-x | license-summary | 52 |
1 files 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 <http://www.gnu.org/licenses/>. +# +# =*= 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<summary>\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() |