"""New, better, entry point.""" import argparse import pathlib import os import logging import colorlog from .cache import Cache from .gather import get_module, get_modules, ModuleEntry from .output import setup_index, setup_module logger = logging.getLogger('muppet') logger.setLevel(logging.DEBUG) ch = colorlog.StreamHandler() ch.setLevel(logging.INFO) # formatter = logging.Formatter('%(name)s - %(levelname)s - %(message)s') formatter = colorlog.ColoredFormatter('%(log_color)s%(name)s - %(levelname)s - %(message)s') ch.setFormatter(formatter) logger.addHandler(ch) def __main() -> None: parser = argparse.ArgumentParser( prog='muppet', description='Sets up puppet doc') parser.add_argument('--env', action='store', default='/etc/puppetlabs/code/modules', help=''' Path to a puppet `modules` directory. ''') # If deploying to http://example.com/~user/muppet then this should # be set to `~/user/muppet` parser.add_argument('--path-base', action='store', default='', help=''' Prefix to web path the pages will be displayed under. ''') parser.add_argument('modules', nargs='*', type=pathlib.Path, help=''' Any number of specific modules to generate documentation for. Mutually exclusive with --env. ''') args = parser.parse_args() env = args.env cache = Cache('/home/hugo/.cache/muppet-strings') modules: list[ModuleEntry] if args.modules != []: modules = [get_module(cache, mod) for mod in args.modules] else: modules = get_modules(cache, env) setup_index('output', modules, path_base=args.path_base) for module in modules: # print(module) logger.info('Handling %s', module.name) setup_module('output', module, path_base=args.path_base) os.system('make -C static-src --silent install-full PREFIX=$PWD/output') os.system("cp -r static/* output/static/") if __name__ == '__main__': __main()