'Symlinks all files from the extension into extendee\'s install dir.
Package authors can override this method to support other
extension mechanisms.  Spack internals (commands, hooks, etc.)
should call do_activate() method so that proper checks are
always executed.'

def activate(self, extension, **kwargs):

    def ignore(filename):
        return ((filename in spack.store.layout.hidden_file_paths) or kwargs.get('ignore', (lambda f: False))(filename))
    tree = LinkTree(extension.prefix)
    conflict = tree.find_conflict(self.prefix, ignore=ignore)
    if conflict:
        raise ExtensionConflictError(conflict)
    tree.merge(self.prefix, ignore=ignore)
