summaryrefslogtreecommitdiffstats
path: root/meta/lib/oe/license.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oe/license.py')
-rw-r--r--meta/lib/oe/license.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/meta/lib/oe/license.py b/meta/lib/oe/license.py
index 39ef9654fc..8d2fd1709c 100644
--- a/meta/lib/oe/license.py
+++ b/meta/lib/oe/license.py
@@ -215,3 +215,21 @@ def manifest_licenses(licensestr, dont_want_licenses, canonical_license, d):
215 manifest.licensestr = manifest.licensestr.replace('[', '(').replace(']', ')') 215 manifest.licensestr = manifest.licensestr.replace('[', '(').replace(']', ')')
216 216
217 return (manifest.licensestr, manifest.licenses) 217 return (manifest.licensestr, manifest.licenses)
218
219class ListVisitor(LicenseVisitor):
220 """Record all different licenses found in the license string"""
221 def __init__(self):
222 self.licenses = set()
223
224 def visit_Str(self, node):
225 self.licenses.add(node.s)
226
227def list_licenses(licensestr):
228 """Simply get a list of all licenses mentioned in a license string.
229 Binary operators are not applied or taken into account in any way"""
230 visitor = ListVisitor()
231 try:
232 visitor.visit_string(licensestr)
233 except SyntaxError as exc:
234 raise LicenseSyntaxError(licensestr, exc)
235 return visitor.licenses