#!/usr/bin/python #--------------------------------------------------------------- # Project : Mandrakelinux # Module : share # File : draksec_help.py # Version : $Id$ # Author : Thierry Vignaud # Created On : Sat Jan 26 17:38:39 2002 # Purpose : loads a python module and creates a help hash # for draksec. #--------------------------------------------------------------- import sys import imp import inspect import re header = '''package security::help; # !! THIS FILE WAS AUTO-GENERATED BY draksec_help.py !! # !! DO NOT MODIFY HERE, MODIFY IN THE *MSEC* CVS !! use strict; use common; our %help = ( ''' footer = '''); ''' ### strings used in the rewritting function_str = ''' '%s' => N("Arguments: %s %s"), ''' ### code modulename = sys.argv[1] module = __import__(modulename) sys.stdout.write(header) clean = re.compile('^.[a-z].*\n', re.M) clean2 = re.compile('^\n', re.M) perl = re.compile('^([A-Z_0-9]*) (.*)$', re.M) for f in inspect.getmembers(module, inspect.isfunction): (args, varargs, varkw, locals) = inspect.getargspec(f[1]) doc = f[1].__doc__ if doc and len(doc) > 2: doc = doc[2:] argspec = inspect.formatargspec(args, varargs, varkw, locals) + '\n' if f[0] == 'set_security_conf': doc = clean.sub('', doc) doc = clean2.sub('', doc) doc = perl.sub('\\1 => N("\\2"),', doc) sys.stdout.write(doc) else: s = function_str % (f[0], argspec, doc) sys.stdout.write(s) sys.stdout.write(footer) # draksec_help.py ends here