def call_script(script_fname, args, log_name='', blend_fname=None, call_args=None, run_in_background=None, only_verbose=False, err_pipe=None, std_pipe=None, stay_alive=True): # if args.blender_fol == '': # args.blender_fol = get_blender_dir() if run_in_background is None: run_in_background = args.back blender_fol = get_blender_dir() if not op.isdir(blender_fol): print('No Blender folder!') return # blend_fname_is_None = True if blend_fname is None else False # call_args_is_None = True if call_args is None else False if log_name == '': log_name = namebase(script_fname) if only_verbose: print('log name: {}'.format(log_name)) if len(args.subjects) == 0: args.subjects = [args.subject] subjects = args.subjects for subject in subjects: args.subject = subject args.subjects = '' # print('*********** {} ***********'.format(subject)) logs_fol = get_logs_fol(subject) # if op.isfile(op.join(get_mmvt_dir(), subject, 'logs', 'pizco.log')): # os.remove(op.join(get_mmvt_dir(), subject, 'logs', 'pizco.log')) if blend_fname is None: blend_fname = get_subject_fname(args) else: blend_fname = op.join(get_mmvt_dir(), blend_fname) if call_args is None: call_args = create_call_args(args) log_fname = op.join(logs_fol, '{}.log'.format(log_name)) print('Writing output to {}'.format(log_fname)) cmd = '"{blender_exe}" "{blend_fname}" {background} --python "{script_fname}" -- {call_args}'.format( # > {log_fname} blender_exe='./blender', background='--background' if run_in_background else '', blend_fname=blend_fname, script_fname=script_fname, call_args=call_args, log_fname=log_fname) # op.join(args.blender_fol, 'blender') print(cmd) if not only_verbose: utils.run_script(cmd, stay_alive=stay_alive, log_fname=log_fname, cwd=blender_fol, err_pipe=err_pipe) #mmvt_addon_fol)
def call_script(script_fname, args, log_name='', blend_fname=None, call_args=None, only_verbose=False): if args.blender_fol == '': args.blender_fol = get_blender_dir() if not op.isdir(args.blender_fol): print('No Blender folder!') return blend_fname_is_None = True if blend_fname is None else False call_args_is_None = True if call_args is None else False logs_fol = op.join(utils.get_parent_fol(__file__, 4), 'logs') if only_verbose: print('Creating logs fol: {}'.format(logs_fol)) else: utils.make_dir(logs_fol) if log_name == '': log_name = namebase(script_fname) if only_verbose: print('log name: {}'.format(log_name)) if len(args.subjects) == 0: args.subjects = [args.subject] subjects = args.subjects for subject in subjects: args.subject = subject args.subjects = '' print('*********** {} ***********'.format(subject)) if blend_fname is None: blend_fname = get_subject_fname(args) else: blend_fname = op.join(get_mmvt_dir(), blend_fname) if call_args is None: call_args = create_call_args(args) log_fname = op.join(logs_fol, '{}.log'.format(log_name)) cmd = '{blender_exe} {blend_fname} --background --python "{script_fname}" {call_args}'.format( # > {log_fname} blender_exe=op.join(args.blender_fol, 'blender'), blend_fname = blend_fname, script_fname = script_fname, call_args=call_args, log_fname = log_fname) mmvt_addon_fol = utils.get_parent_fol(__file__, 2) print(cmd) if not only_verbose: os.chdir(mmvt_addon_fol) utils.run_script(cmd) # Initialize blend_fname and call_args to None if that was their init value if blend_fname_is_None: blend_fname = None if call_args_is_None: call_args = None call_args, blend_fname = None, None print('Finish! For more details look in {}'.format(log_fname))