def generate_pmbuild_config(config, profile): print( "--------------------------------------------------------------------------------" ) print( "pmbuild live reload config -----------------------------------------------------" ) print( "--------------------------------------------------------------------------------" ) if "data_dir" not in config: print( "[error]: did not generate pmbuild_config.json for live reloading") return print("writing " + config["data_dir"] + "/" + "pmbuild_config.json") wd = os.getcwd() pmd = util.sanitize_file_path(config["env"]["pmtech_dir"]) md = { "profile": profile, "pmtech_dir": pmd, "pmbuild": "cd " + wd + " && " + pmd + "pmbuild " + profile + " " } util.create_dir(config["data_dir"]) f = open(os.path.join(config["data_dir"], "pmbuild_config.json"), "w+") f.write(json.dumps(md, indent=4))
def python_tool_to_platform(tool): tool = util.sanitize_file_path(tool) if platform.system() == "Windows": tool = "py -3 " + tool else: tool = "python3 " + tool return tool
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]): outputs.append((task[0], task[1])) return outputs
def export_config_for_directory(filedir, platform): filepath = util.sanitize_file_path(filedir) dirtree = filepath.split(os.sep) export_dict = dict() subdir = "" for i in range(0, len(dirtree)): subdir = os.path.join(subdir, dirtree[i]) export = os.path.join(subdir, "export.jsn") if os.path.exists(export): dir_dict = jsn.loads(open(export, "r").read()) util.merge_dicts(export_dict, dir_dict) if platform in export_dict.keys(): util.merge_dicts(export_dict, export_dict[platform]) return export_dict
def tool_to_platform(tool): tool = util.sanitize_file_path(tool) tool = tool.replace("$platform", util.get_platform_name()) if platform.system() == "Windows": tool += ".exe" return tool