'This is where the meat is.  Basically the data_files list must
now be a list of tuples of 3 entries.  The first
entry is one of \'base\', \'platbase\', etc, which indicates which
base to install from.  The second entry is the path to install
too.  The third entry is a list of files to install.'

def run(self):

    for lof in self.data_files:
        if lof[0]:
            base = getattr(self, ('install_' + lof[0]))
        else:
            base = getattr(self, 'install_base')
        dir = convert_path(lof[1])
        if (not os.path.isabs(dir)):
            dir = os.path.join(base, dir)
        elif self.root:
            dir = change_root(self.root, dir)
        self.mkpath(dir)
        files = lof[2]
        if (len(files) == 0):
            self.outfiles.append(dir)
        else:
            for f in files:
                f = convert_path(f)
                (out, _) = self.copy_file(f, dir)
                self.outfiles.append(out)
    return self.outfiles
