def vendor(self):
return self.metadata.get("PKG_VENDOR", "")
+ @staticmethod
+ def filter_deps(deps):
+ """
+ Filter out invalid dependencies.
+
+ This is just for reading packages and skipping comments
+ or empty lines.
+ """
+ ret = []
+
+ for dep in deps:
+ # Remove any leading or trailing spaces.
+ dep = dep.strip()
+
+ # Skip empty strings.
+ if not dep:
+ continue
+
+ # Skip comment lines.
+ if dep.startswith("#"):
+ continue
+
+ ret.append(dep)
+
+ return ret
+
@property
def prerequires(self):
requires = self.metadata.get("PKG_PREREQUIRES", "")
if not provides:
return []
- return provides.splitlines()
+ provides = provides.splitlines()
+ return self.filter_deps(provides)
@property
def requires(self):
if not requires:
return []
- return requires.splitlines()
+ requires = requires.splitlines()
+ return self.filter_deps(requires)
@property
def prerequires(self):
if not prerequires:
return []
- return prerequires.splitlines()
+ prerequires = prerequires.splitlines()
+ return self.filter_deps(prerequires)
@property
def obsoletes(self):
if not obsoletes:
return []
- return obsoletes.splitlines()
+ obsoletes = obsoletes.splitlines()
+ return self.filter_deps(obsoletes)
@property
def conflicts(self):
if not conflicts:
return []
- return conflicts.splitlines()
+ conflicts = conflicts.splitlines()
+ return self.filter_deps(conflicts)
class SourcePackage(FilePackage):
@property
def requires(self):
- return self.lexer.build.get_var("requires", "").splitlines()
+ reqs = self.lexer.build.get_var("requires", "").splitlines()
+
+ return self.filter_deps(reqs)
@property
def provides(self):