summaryrefslogtreecommitdiff
path: root/find-all-obnam-errors
diff options
context:
space:
mode:
Diffstat (limited to 'find-all-obnam-errors')
-rwxr-xr-xfind-all-obnam-errors92
1 files changed, 0 insertions, 92 deletions
diff --git a/find-all-obnam-errors b/find-all-obnam-errors
deleted file mode 100755
index 602ae990..00000000
--- a/find-all-obnam-errors
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014-2015 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+ =*=
-
-
-import imp
-import inspect
-import os
-
-import cliapp
-
-import obnamlib
-import obnamlib.plugins
-
-
-def get_modules(module):
- objs = [getattr(module, name) for name in dir(module)]
- return [x for x in objs if inspect.ismodule(x)]
-
-
-def get_modules_recursively(module):
- result = []
- queue = get_modules(module)
- while queue:
- item = queue.pop()
- if item not in result:
- result.append(item)
- queue.extend(get_modules(item))
- return result
-
-
-def get_obnam_errors(module):
-
- def is_obnam_error(obj):
- return (type(obj) is type and
- issubclass(x, obnamlib.ObnamError) and
- hasattr(x, 'msg'))
-
- objs = [getattr(module, name) for name in dir(module)]
- return [x for x in objs if is_obnam_error(x)]
-
-
-all_modules = get_modules_recursively(obnamlib)
-
-# This is a bit of magic to load all the modules that contain plugins.
-def find_plugin_modules(*args):
- for module_filename in app.pluginmgr.plugin_files:
- module_name, ext = os.path.splitext(os.path.basename(module_filename))
- with open(module_filename) as f:
- module = imp.load_module(module_name, f, module_filename,
- ('.py', 'r', imp.PY_SOURCE))
- all_modules.append(module)
-
-
-# This is a terrible kludge.
-app = obnamlib.App()
-app.process_args = find_plugin_modules
-app.run()
-
-template = '''\
-{id} ({class_name}): {msg}
-'''
-
-error_classes = set()
-for module in set(all_modules):
- for error_class in get_obnam_errors(module):
- error_classes.add(error_class)
-
-def class_name(error_class):
- return error_class.__name__
-
-for error_class in sorted(error_classes, key=class_name):
- e = error_class()
- print template.format(
- class_name=class_name(error_class),
- id=e.id,
- msg=e.msg,
- ),