|
|
import os | import os |
import sys | import sys |
| |
|
from xml.dom import minidom |
|
from xml.dom import NotFoundErr |
from portage import output | from portage import output |
from portage.output import red, green | from portage.output import red, green |
from portage import exception | from portage import exception |
|
|
usedict[pkg].add(flag) | usedict[pkg].add(flag) |
return usedict | return usedict |
| |
|
def parse_metadata_use(mylines, uselist=None): |
|
""" |
|
Records are wrapped in XML as per GLEP 56 |
|
returns a dict of the form a list of flags""" |
|
if uselist is None: |
|
uselist = [] |
|
metadatadom = minidom.parse(mylines) |
|
|
|
try: |
|
usetag = metadatadom.getElementsByTagName("use") |
|
if not usetag: |
|
return uselist |
|
except NotFoundErr: |
|
return uselist |
|
|
|
try: |
|
flags = usetag[0].getElementsByTagName("flag") |
|
except NotFoundErr: |
|
raise exception,ParseError("metadata.xml: Malformed input: missing 'flag' tag(s)") |
|
for flag in flags: |
|
pkg_flag = flag.getAttribute("name") |
|
if pkg_flag is "": |
|
raise exception,ParseError("metadata.xml: Malformed input: missing 'name' attribute for 'flag' tag") |
|
uselist.append(pkg_flag) |
|
metadatadom.unlink() |
|
return uselist |
|
|
| |
def FindPackagesToScan(settings, startdir, reposplit): | def FindPackagesToScan(settings, startdir, reposplit): |
""" Try to find packages that need to be scanned | """ Try to find packages that need to be scanned |