'Called on an extension to invoke the extendee\'s activate method.
Commands should call this routine, and should not call
activate() directly.'

def do_activate(self, force=False):

    self._sanity_check_extension()
    spack.store.layout.check_extension_conflict(self.extendee_spec, self.spec)
    if (not force):
        for spec in self.dependency_activations():
            if (not spec.package.activated):
                spec.package.do_activate(force=force)
    self.extendee_spec.package.activate(self, **self.extendee_args)
    spack.store.layout.add_extension(self.extendee_spec, self.spec)
    tty.msg(('Activated    extension    %s    for    %s' % (self.spec.short_spec, self.extendee_spec.cformat('$_$@$+$%@'))))
