diff options
Diffstat (limited to 'Mac/Lib/test/cmtest.py')
-rw-r--r-- | Mac/Lib/test/cmtest.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Mac/Lib/test/cmtest.py b/Mac/Lib/test/cmtest.py new file mode 100644 index 0000000..7170424 --- /dev/null +++ b/Mac/Lib/test/cmtest.py @@ -0,0 +1,45 @@ +"""cmtest - List all components in the system""" + +import Cm +import Res +import sys + +def getstr255(r): + """Get string from str255 resource""" + if not r.data: return '' + len = ord(r.data[0]) + return r.data[1:1+len] + +def getinfo(c): + """Return (type, subtype, creator, fl1, fl2, name, description) for component""" + h1 = Res.Resource('') + h2 = Res.Resource('') + h3 = Res.Resource('') + type, subtype, creator, fl1, fl2 = c.GetComponentInfo(h1, h2, h3) + name = getstr255(h1) + description = getstr255(h2) + return type, subtype, creator, fl1, fl2, name, description + +def getallcomponents(): + """Return list with info for all components, sorted""" + any = ('\0\0\0\0', '\0\0\0\0', '\0\0\0\0', 0, 0) + c = None + rv = [] + while 1: + try: + c = Cm.FindNextComponent(c, any) + except Cm.Error: + break + rv.append(getinfo(c)) + rv.sort() + return rv + +def main(): + """Print info for all components""" + info = getallcomponents() + for type, subtype, creator, f1, f2, name, description in info: + print '%4.4s %4.4s %4.4s %s 0x%x 0x%x'%(type, subtype, creator, name, f1, f2) + print ' ', description + sys.exit(1) + +main() |