def METHOD_NAME(args: RunConf, config: Configuration):
    """
    Execute all the stages implied by the passed `args`,
    and handles the output correctly, by either printing the output
    or (if `args` specifies an output file) placing the output to the
    specified file.
    """
    output = get_fud_output(args, config)
    # output the data or profiling information.
    if args.output_file is not None:
        if output.typ == SourceType.Directory:
            shutil.move(output.data.name, args.output_file)
        else:
            with Path(args.output_file).open("wb") as f:
                f.write(output.convert_to(SourceType.Bytes).data)
    elif output:
        print(output.convert_to(SourceType.String).data)