diff --git a/.bin/Scripts/functions/common.py b/.bin/Scripts/functions/common.py index 9e266332..f1d88e08 100644 --- a/.bin/Scripts/functions/common.py +++ b/.bin/Scripts/functions/common.py @@ -651,7 +651,10 @@ def upload_crash_details(): data += '#############################\n' data += 'Runtime Details:\n\n' data += 'sys.argv: {}\n\n'.format(sys.argv) - data += 'global_vars: {}\n'.format(global_vars) + try: + data += generate_global_vars_report() + except Exception: + data += 'global_vars: {}\n'.format(global_vars) filename = global_vars.get('LogFile', 'Unknown') filename = re.sub(r'.*(\\|/)', '', filename) filename += '.txt' @@ -827,6 +830,32 @@ def find_bin(): global_vars['BaseDir'] = base +def generate_global_vars_report(): + """Build readable string from global_vars, returns str.""" + report = ['global_vars: {'] + for k, v in sorted(global_vars.items()): + if k == 'Env': + continue + if isinstance(v, list): + report.append(' {}:'.format(str(k))) + for item in v: + report.append(' {}'.format(str(v))) + elif isinstance(v, dict): + report.append(' {}:'.format(str(k))) + for item_k, item_v in sorted(v.items()): + report.append(' {:<15} {}'.format( + str(item_k)+':', str(item_v))) + else: + report.append(' {:<18}{}'.format(str(k)+':', str(v))) + report.append(' Env:') + for k, v in sorted(global_vars.get('Env', {}).items()): + report.append(' {:<15} {}'.format( + str(k)+':', str(v))) + report.append('}') + + return '\n'.join(report) + + def make_tmp_dirs(): """Make temp directories.""" os.makedirs(global_vars['BackupDir'], exist_ok=True) @@ -879,8 +908,14 @@ def set_linux_vars(): def set_log_file(log_name): """Sets global var LogFile and creates path as needed.""" - folder_path = r'{}\{}'.format(global_vars['LogDir'], KIT_NAME_FULL) - log_file = r'{}\{}'.format(folder_path, log_name) + folder_path = '{}{}{}'.format( + global_vars['LogDir'], + os.sep, + KIT_NAME_FULL) + log_file = '{}{}{}'.format( + folder_path, + os.sep, + log_name) os.makedirs(folder_path, exist_ok=True) global_vars['LogFile'] = log_file