From 3265006adbd1885cd787d44107d293ad867eaf5b Mon Sep 17 00:00:00 2001 From: nemunaire Date: Mon, 15 Dec 2014 21:43:40 +0100 Subject: [PATCH] argparse: add verbosity level --- bot.py | 4 +++- importer.py | 2 +- nemubot.py | 43 +++++++++++++++++++++++++------------------ 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/bot.py b/bot.py index b9829cc..61845d7 100644 --- a/bot.py +++ b/bot.py @@ -43,7 +43,7 @@ class Bot(threading.Thread): """Class containing the bot context and ensuring key goals""" def __init__(self, ip="127.0.0.1", modules_paths=list(), - data_path="./datas/"): + data_path="./datas/", verbosity=0): """Initialize the bot context Keyword arguments: @@ -56,6 +56,8 @@ class Bot(threading.Thread): logger.info("Initiate nemubot v%s", __version__) + self.verbosity = verbosity + # External IP for accessing this bot self.ip = ip diff --git a/importer.py b/importer.py index 8138cac..c1fd900 100644 --- a/importer.py +++ b/importer.py @@ -179,7 +179,7 @@ class ModuleLoader(SourceLoader): # Set module common functions and datas module.REGISTERED_HOOKS = list() module.REGISTERED_EVENTS = list() - module.DEBUG = False + module.DEBUG = self.context.verbosity > 0 module.DIR = self.mpath module.print = prnt module.print_debug = prnt_dbg diff --git a/nemubot.py b/nemubot.py index 3311593..2001898 100755 --- a/nemubot.py +++ b/nemubot.py @@ -29,25 +29,13 @@ from prompt.builtins import load_file import importer if __name__ == "__main__": - # Setup loggin interface - logger = logging.getLogger("nemubot") - - formatter = logging.Formatter( - '%(asctime)s %(name)s %(levelname)s %(message)s') - - ch = logging.StreamHandler() - ch.setFormatter(formatter) - ch.setLevel(logging.INFO) - logger.addHandler(ch) - - fh = logging.FileHandler('./nemubot.log') - fh.setFormatter(formatter) - fh.setLevel(logging.DEBUG) - logger.addHandler(fh) - # Parse command line arguments parser = argparse.ArgumentParser() + parser.add_argument("-v", "--verbose", action="count", + default=0, + help="Verbosity level") + parser.add_argument("-M", "--modules-path", nargs='*', default=["./modules/"], help="Directory to use as modules store") @@ -58,9 +46,27 @@ if __name__ == "__main__": parser.add_argument('files', metavar='FILE', nargs='*', help="Configuration files to load") - args = parser.parse_args() + # Setup loggin interface + logger = logging.getLogger("nemubot") + + formatter = logging.Formatter( + '%(asctime)s %(name)s %(levelname)s %(message)s') + + ch = logging.StreamHandler() + ch.setFormatter(formatter) + if args.verbose > 1: + ch.setLevel(logging.DEBUG) + else: + ch.setLevel(logging.INFO) + logger.addHandler(ch) + + fh = logging.FileHandler('./nemubot.log') + fh.setFormatter(formatter) + fh.setLevel(logging.DEBUG) + logger.addHandler(fh) + # Add modules dir paths modules_paths = list() for path in args.modules_path: @@ -71,7 +77,8 @@ if __name__ == "__main__": logger.error("%s is not a directory", path) # Create bot context - context = bot.Bot(modules_paths=modules_paths, data_path=args.data_path) + context = bot.Bot(modules_paths=modules_paths, data_path=args.data_path, + verbosity=args.verbose) # Load the prompt prmpt = prompt.Prompt()