Add pre-install and pre-uninstall hooks.
This commit is contained in:
parent
ebe0c1d83a
commit
adb7d614e6
2 changed files with 14 additions and 1 deletions
|
@ -31,7 +31,9 @@
|
|||
|
||||
Currently the following hooks are supported:
|
||||
|
||||
* pre_install()
|
||||
* post_install()
|
||||
* pre_uninstall()
|
||||
* post_uninstall()
|
||||
|
||||
This can be used to implement support for things like module
|
||||
|
@ -70,5 +72,8 @@ def __call__(self, pkg):
|
|||
#
|
||||
# Define some functions that can be called to fire off hooks.
|
||||
#
|
||||
post_install = HookRunner('post_install')
|
||||
pre_install = HookRunner('pre_install')
|
||||
post_install = HookRunner('post_install')
|
||||
|
||||
pre_uninstall = HookRunner('pre_uninstall')
|
||||
post_uninstall = HookRunner('post_uninstall')
|
||||
|
|
|
@ -768,6 +768,10 @@ def do_install(self, **kwargs):
|
|||
# package naming scheme it likes.
|
||||
spack.install_layout.make_path_for_spec(self.spec)
|
||||
|
||||
# Run the pre-install hook in the child process after
|
||||
# the directory is created.
|
||||
spack.hooks.pre_install(self)
|
||||
|
||||
# Set up process's build environment before running install.
|
||||
self.stage.chdir_to_source()
|
||||
build_env.setup_package(self)
|
||||
|
@ -862,6 +866,10 @@ def do_uninstall(self, **kwargs):
|
|||
"The following installed packages depend on it: %s" %
|
||||
' '.join(formatted_deps))
|
||||
|
||||
# Pre-uninstall hook runs first.
|
||||
spack.hooks.pre_uninstall(self)
|
||||
|
||||
# Uninstalling in Spack only requires removing the prefix.
|
||||
self.remove_prefix()
|
||||
tty.msg("Successfully uninstalled %s." % self.spec.short_spec)
|
||||
|
||||
|
|
Loading…
Reference in a new issue