def copy_template_file(fips_dir, proj_dir, filename, values, silent=False) : """copy a template file from fips/templates to the project directory and replace template values (e.g. the project name), ask for user permission if files exist :param fips_dir: absolute fips directory :param proj_dir: absolute project directory :param filename: filename to copy from fips/templates :param values: template key/value dictionary :param silent: if True, overwrite existing file and don't print status :returns: True file overwritten, False on not overwritten """ src_path = fips_dir + '/templates/' + filename dst_path = proj_dir + '/' + filename if not os.path.isfile(src_path) : log.error("template src file '{}' doesn't exist".format(src_path)) if not silent : if os.path.isfile(dst_path) : if not util.confirm("overwrite '{}'?".format(dst_path)) : log.info("skipping '{}'".format(dst_path)) return False content = None with open(src_path, 'r') as f : content = f.read() content = Template(content).substitute(values) with open(dst_path, 'w') as f : f.write(content) if not silent : log.info("wrote '{}'".format(dst_path)) return True
def remove_old_sdks(fips_dir): # this checks for any "old" SDKs and removes them old_sdk_path = get_sdkroot_dir(fips_dir) + '/' + util.get_host_platform() if os.path.isdir(old_sdk_path): if util.confirm(log.RED + "Delete obsolete emscripten SDK in '{}'?".format(old_sdk_path) + log.DEF): log.info("Deleting '{}'...".format(old_sdk_path)) shutil.rmtree(old_sdk_path, onerror=remove_readonly) else: log.info("'No' selected, nothing deleted")
def uninstall(fips_dir): log.colored(log.YELLOW, "=== uninstalling WASI SDK") if sdk_dir_exists(fips_dir): sdk_dir = get_sdk_dir(fips_dir) if util.confirm(log.RED + "Delete directory '{}?".format(sdk_dir) + log.DEF): log.info("Deleting '{}'...".format(sdk_dir)) shutil.rmtree(sdk_dir) else: log.info("'No' selected, nothing deleted") else: log.warn("WASI SDK is not installed, nothing to do")
def uninstall(fips_dir): emsdk_dir = get_emsdk_dir(fips_dir) log.colored(log.YELLOW, "=== uninstalling emscripten SDK".format(emsdk_dir)) # check for any "old" SDK installation remove_old_sdks(fips_dir) if emsdk_dir_exists(fips_dir): if util.confirm(log.RED + "Delete emsdk directory at '{}'?".format(emsdk_dir) + log.DEF): log.info("Deleting '{}'...".format(emsdk_dir)) shutil.rmtree(emsdk_dir, onerror=remove_readonly) else: log.info("'No' selected, nothing deleted") else: log.warn('emscripten SDK is not installed, nothing to do')
def uninstall(fips_dir): log.colored(log.YELLOW, "=== uninstalling Dawn SDK".format(get_sdk_dir(fips_dir))) sdk_dir = get_sdk_dir(fips_dir) if os.path.isdir(sdk_dir): if util.confirm(log.RED + "Delete Dawn SDK directory at '{}'?".format(sdk_dir) + log.DEF): log.info("Deleting '{}'...".format(sdk_dir)) shutil.rmtree(sdk_dir) else: log.info("'No' selected, nothing deleted") else: log.warn('Dawn SDK is not installed, nothing to do')
def cleanup(fips_dir, proj_dir): '''deletes the .idea directory''' clion_dir = proj_dir + '/.idea' if os.path.isdir(clion_dir): log.info(log.RED + 'Please confirm to delete the following directory:' + log.DEF) log.info(' {}'.format(clion_dir)) if util.confirm(log.RED + 'Delete this directory?' + log.DEF): if os.path.isdir(clion_dir): log.info(' deleting {}'.format(clion_dir)) shutil.rmtree(clion_dir) log.info('Done.') else: log.info('Nothing deleted, done.') else: log.info('Nothing to delete.')
def cleanup(fips_dir, proj_dir): '''goes through all dependencies and deletes the .vscode directory''' # fetch all project dependencies success, impex = dep.get_all_imports_exports(fips_dir, proj_dir) if not success : log.warn("missing import project directories, please run 'fips fetch'") log.info(log.RED + 'Please confirm to delete the following directories:' + log.DEF) for dep_proj_name in reversed(impex): dep_proj_dir = util.get_project_dir(fips_dir, dep_proj_name) vscode_dir = dep_proj_dir + '/.vscode/' if os.path.isdir(vscode_dir): log.info(' {}'.format(vscode_dir)) if util.confirm(log.RED + 'Delete those directories?' + log.DEF): for dep_proj_name in reversed(impex): dep_proj_dir = util.get_project_dir(fips_dir, dep_proj_name) vscode_dir = dep_proj_dir + '/.vscode/' if os.path.isdir(vscode_dir): log.info(' deleting {}'.format(vscode_dir)) shutil.rmtree(vscode_dir) log.info('Done.') else: log.info('Nothing deleted, done.')