Thanks kilobyte! Didn't see this so I ended up just hacking up a python script (after spending over an hour trying to get the damn cab manager installed). Inline below in case it's useful for anyone else. Just takes a single arg which is the extracted infiniiVisionSetup.cab directory. Looks like its all working now!
#!/usr/bin/python
#
# Parse xml into cab file system
#
import sys
import os
import shutil
from xml.etree import ElementTree
# Dir name
dir = None
# get root
root = sys.argv[1]
if root is None:
os.exit ("Must specify root")
with open (root + "/_setup.xml", 'rt') as f:
tree = ElementTree.parse (f)
for node in tree.iter():
if node.attrib.get ('type') is not None:
# Check if we should get new base dir
if node.attrib.get ('type')[0] == '\\':
dir = node.attrib.get ('type')
dir = dir.replace ("\\", "/")
dir = dir[1:]
print "mkdir %s" % dir
if not os.path.exists (dir):
os.makedirs (dir)
# Check if we found a destination dir
else:
if node.attrib.get ('translation') == 'install':
dest = dir + '/' + node.attrib.get ('type')
# print "Dest: %s" % dest
# Check if we have a source
if node.tag == 'parm' and dir is not None:
src = root + "/" + node.attrib.get ('value')
print "cp %s %s" % (src, dest)
shutil.copyfile (src, dest)