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)
Beispiel #2
0
    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