def __Repair(log: Log, sourceFile: SourceFile, asciiRepair: bool, disableWrite: bool) -> None: strContent = "\n".join(sourceFile.LinesModded) if asciiRepair: strContent = __Decoded(strContent) if strContent != sourceFile.Content: log.DoPrint("Repaired '%s'" % (os.path.normpath(sourceFile.FileName))) if not disableWrite: IOUtil.WriteFile(sourceFile.FileName, strContent)
def __init__(self, config: Config, packages: List[Package], platformName: str) -> None: super().__init__() self.UseVariantNames = True self.RequireExecutable = True self.ShowExternals = False self.ColorNodesByType = True # Find all base packages basePackages = self.__FindBasePackages( config.ToolConfig.ProjectInfo.Contexts, packages) packageList = packages if self.RequireExecutable: packageList = self.FilterBasedOnExecutableDemand(packages) if len(packageList) <= 0: packageList = packages #dotFile = self.CreateDirectDependencies(config, packageList, platformName) #dotFile = self.CreateAllDependencies(config, packageList, platformName) #dotFile = self.CreateSimpleDependencies(config, packageList, platformName) dotFile = self.CreateSimpleDependencies2(config, packageList, basePackages, platformName) content = "\n".join(dotFile) tmpFile = "TmpDependencies_{0}.dot".format(platformName) outputFile = "Dependencies_{0}.png".format(platformName) IOUtil.WriteFile(tmpFile, content) # "dot -Tpng -o test.png Dependencies_Yocto.dot" try: subprocess.call( ["dot", "-Tpng", "-o{0}".format(outputFile), tmpFile]) os.remove(tmpFile) except Exception as ex: print("WARNING: Failed to execute dot, is it part of the path?") os.remove(tmpFile) raise