PCQRSCANER/venv/Lib/site-packages/extract_msg/dev.py
2019-12-22 21:51:47 +01:00

68 lines
2.4 KiB
Python

"""
Module for collecting data to be sent to the developer.
"""
# NOTE: Order of tasks:
# 1. Check for exceptions:
# * Check the entire process for exceptions raised by a specific file and log them. If none occur,
# log something like "No exceptions were detected."
# 2. Run the file through the developer versions of the classes
import logging
from extract_msg import dev_classes
from extract_msg import utils
from extract_msg.compat import os_ as os
from extract_msg.message import Message
logger = logging.getLogger(__name__)
logger.addHandler(logging.NullHandler())
def setup_dev_logger(default_path=None, logfile = None, env_key='EXTRACT_MSG_LOG_CFG'):
utils.setup_logging(default_path, 5, logfile, True, env_key)
def main(args, argv):
"""
Please only run this from the command line. Attempting to use this
otherwise is likely to fail. :param args: is the class instance
returned by `extract_msg.utils.get_command_args`. :param argv: is
the list of arguments that were the input to the aforementioned
function.
"""
setup_dev_logger(args.config_path, args.log)
currentdir = os.getcwdu() # Store this just in case the paths that have been given are relative
if args.out_path:
if not os.path.exists(args.out_path):
os.makedirs(args.out_path)
out = args.out_path
else:
out = currentdir
logger.log(5, 'ARGV: {}'.format(argv))
for y, x in enumerate(args.msgs):
logger.log(5, '---- RUNNING DEVELOPER MODE ON FILE {} ----'.format(x[0]))
logger.log(5, 'EXCEPTION CHECK:')
try:
with Message(x[0]) as msg:
# Right here we should still be in the path in currentdir
os.chdir(out)
msg.save(toJson = args.json, useFileName = args.use_filename, ContentId = args.cid)
except Exception as e:
logger.exception(e)
else:
logger.log(5, 'No exceptions raised.')
logger.log(5, 'DEVELOPER CLASS OUTPUT:')
os.chdir(currentdir)
dev_classes.Message(x[0])
logger.log(5, '---- END OF DEVELOPER LOG ----')
logpath = None;
for x in logging.root.handlers:
try:
logpath = x.baseFilename
except AttributeError:
pass;
print('Logging complete. Log has been saved to {}'.format(logpath))