def get_task_files(task): outputs = [] if len(task) != 2: print("[error] file tasks must be an array of size 2 [src, dst]") exit(1) fn = task[0].find("*") if fn != -1: # wildcards fnroot = task[0][:fn - 1] for root, dirs, files in os.walk(fnroot): for file in files: src = util.sanitize_file_path(os.path.join(root, file)) if is_excluded(src): continue if fnmatch.fnmatch(src, task[0]): dst = src.replace(util.sanitize_file_path(fnroot), util.sanitize_file_path(task[1])) outputs.append((src, dst)) elif os.path.isdir(task[0]): # dir for root, dirs, files in os.walk(task[0]): for file in files: src = util.sanitize_file_path(os.path.join(root, file)) if is_excluded(src): continue dst = src.replace(util.sanitize_file_path(task[0]), util.sanitize_file_path(task[1])) outputs.append((src, dst)) else: # single file if not is_excluded(task[0]): util.copy_file_create_dir_if_newer(task[0], task[1]) outputs.append((task[0], task[1])) return outputs
def run_copy(config): print( "--------------------------------------------------------------------------------" ) print( "copy ---------------------------------------------------------------------------" ) print( "--------------------------------------------------------------------------------" ) copy_tasks = config["copy"] for task in copy_tasks: files = get_task_files(task) for f in files: util.copy_file_create_dir_if_newer(f[0], f[1])
def run_textures(config): print( "--------------------------------------------------------------------------------" ) print( "textures -----------------------------------------------------------------------" ) print( "--------------------------------------------------------------------------------" ) tool_cmd = tool_to_platform(config["tools"]["texturec"]) for task in config["textures"]: files = get_task_files_containers(task) for f in files: copy_fmt = [".dds", ".pmv"] conv_fmt = [".png", ".jpg", ".tga", ".bmp", ".txt"] cont_fmt = [".txt"] fext = os.path.splitext(f[0])[1] if fext in copy_fmt: util.copy_file_create_dir_if_newer(f[0], f[1]) if fext in conv_fmt: export = export_config_for_file(f[0]) dep_inputs = [f[0]] if fext in cont_fmt: export = export_config_for_directory(f[0], "osx") dep_inputs = get_container_dep_inputs(f[0], dep_inputs) dst = util.change_ext(f[1], ".dds") if not dependencies.check_up_to_date_single(dst): if "format" not in export.keys(): export["format"] = "RGBA8" dep_outputs = [dst] dep_info = dependencies.create_dependency_info( dep_inputs, dep_outputs) dep = dict() dep["files"] = list() dep["files"].append(dep_info) util.create_dir(dst) cmd = tool_cmd + " " cmd += "-f " + f[0] + " " cmd += "-t " + export["format"] + " " if "cubemap" in export.keys() and export["cubemap"]: cmd += " --cubearray " cmd += "-o " + dst print("texturec " + f[0]) subprocess.call(cmd, shell=True) dependencies.write_to_file_single( dep, util.change_ext(dst, ".json"))