def test_getRecipeReader(self): f = getRecipeReader("foo") assert(type(f) == FileReader) f = getRecipeReader("dist:foo@master") assert(type(f) == FileReader) f = getRecipeReader("dist:foo@master", "alidist") assert(type(f) == GitReader)
def test_getRecipeReader(self): f = getRecipeReader("foo") self.assertEqual(type(f), FileReader) f = getRecipeReader("dist:foo@master") self.assertEqual(type(f), FileReader) f = getRecipeReader("dist:foo@master", "alidist") self.assertEqual(type(f), GitReader)
def test_getRecipeReader(self): f = getRecipeReader("foo") assert (type(f) == FileReader) f = getRecipeReader("dist:foo@master") assert (type(f) == FileReader) f = getRecipeReader("dist:foo@master", "alidist") assert (type(f) == GitReader)
def deps(recipesDir, topPackage, outFile, buildRequires, transitiveRed, disable): dot = {} keys = [ "requires" ] if buildRequires: keys.append("build_requires") for p in glob("%s/*.sh" % recipesDir): debug(format("Reading file %(filename)s", filename=p)) try: err, recipe, _ = parseRecipe(getRecipeReader(p)) name = recipe["package"] if name in disable: debug("Ignoring %s, disabled explicitly" % name) continue except Exception as e: error(format("Error reading recipe %(filename)s: %(type)s: %(msg)s", filename=p, type=type(e).__name__, msg=str(e))) sys.exit(1) dot[name] = dot.get(name, []) for k in keys: for d in recipe.get(k, []): d = d.split(":")[0] d in disable or dot[name].append(d) selected = None if topPackage != "all": if not topPackage in dot: error(format("Package %(topPackage)s does not exist", topPackage=topPackage)) return False selected = [ topPackage ] olen = 0 while len(selected) != olen: olen = len(selected) selected += [ x for s in selected if s in dot for x in dot[s] if not x in selected ] selected.sort() result = "digraph {\n" for p,deps in list(dot.items()): if selected and not p in selected: continue result += " \"%s\";\n" % p for d in deps: result += " \"%s\" -> \"%s\";\n" % (p,d) result += "}\n" with NamedTemporaryFile(delete=False) as fp: fp.write(result) try: if transitiveRed: execute(format("tred %(dotFile)s > %(dotFile)s.0 && mv %(dotFile)s.0 %(dotFile)s", dotFile=fp.name)) execute(["dot", fp.name, "-Tpdf", "-o", outFile]) except Exception as e: error(format("Error generating dependencies with dot: %(type)s: %(msg)s", type=type(e).__name__, msg=str(e))) else: info(format("Dependencies graph generated: %(outFile)s", outFile=outFile)) remove(fp.name) return True
def deps(recipesDir, topPackage, outFile, buildRequires, transitiveRed, disable): dot = {} keys = ["requires"] if buildRequires: keys.append("build_requires") for p in glob("%s/*.sh" % recipesDir): debug(format("Reading file %(filename)s", filename=p)) try: err, recipe, _ = parseRecipe(getRecipeReader(p)) name = recipe["package"] if name in disable: debug("Ignoring %s, disabled explicitly" % name) continue except Exception as e: error( format("Error reading recipe %(filename)s: %(type)s: %(msg)s", filename=p, type=type(e).__name__, msg=str(e))) sys.exit(1) dot[name] = dot.get(name, []) for k in keys: for d in recipe.get(k, []): d = d.split(":")[0] d in disable or dot[name].append(d) selected = None if topPackage != "all": if not topPackage in dot: error( format("Package %(topPackage)s does not exist", topPackage=topPackage)) return False selected = [topPackage] olen = 0 while len(selected) != olen: olen = len(selected) selected += [ x for s in selected if s in dot for x in dot[s] if not x in selected ] selected.sort() result = "digraph {\n" for p, deps in list(dot.items()): if selected and not p in selected: continue result += " \"%s\";\n" % p for d in deps: result += " \"%s\" -> \"%s\";\n" % (p, d) result += "}\n" with NamedTemporaryFile(delete=False) as fp: fp.write(result) try: if transitiveRed: execute( format( "tred %(dotFile)s > %(dotFile)s.0 && mv %(dotFile)s.0 %(dotFile)s", dotFile=fp.name)) execute(["dot", fp.name, "-Tpdf", "-o", outFile]) except Exception as e: error( format("Error generating dependencies with dot: %(type)s: %(msg)s", type=type(e).__name__, msg=str(e))) else: info( format("Dependencies graph generated: %(outFile)s", outFile=outFile)) remove(fp.name) return True