spack.hooks package¶
Submodules¶
spack.hooks.case_consistency module¶
-
spack.hooks.case_consistency.
git_case_consistency_check
(path)¶ Re-sync case of files in a directory with git.
On case-insensitive but case-preserving filesystems like Mac OS X, Git doesn’t properly rename files that only had their case changed.
This checks files in a directory against git and does a case-restoring rename (actually two renames, e.g.:
name -> tmp -> NAME
We use this in Spack to ensure package directories are named correctly.
TODO: this check can probably be removed once package names have been TODO: lowercase for a long while.
-
spack.hooks.case_consistency.
pre_run
()¶
spack.hooks.licensing module¶
-
spack.hooks.licensing.
post_install
(spec)¶ This hook symlinks local licenses to the global license for licensed software.
-
spack.hooks.licensing.
pre_install
(spec)¶ This hook handles global license setup for licensed software.
-
spack.hooks.licensing.
set_up_license
(pkg)¶ Prompt the user, letting them know that a license is required.
For packages that rely on license files, a global license file is created and opened for editing.
For packages that rely on environment variables to point to a license, a warning message is printed.
For all other packages, documentation on how to set up a license is printed.
-
spack.hooks.licensing.
symlink_license
(pkg)¶ Create local symlinks that point to the global license file.
-
spack.hooks.licensing.
write_license_file
(pkg, license_path)¶ Writes empty license file.
Comments give suggestions on alternative methods of installing a license.
spack.hooks.module_file_generation module¶
-
spack.hooks.module_file_generation.
post_install
(spec)¶
-
spack.hooks.module_file_generation.
post_uninstall
(spec)¶
spack.hooks.sbang module¶
-
spack.hooks.sbang.
filter_shebang
(path)¶ Adds a second shebang line, using sbang, at the beginning of a file.
-
spack.hooks.sbang.
filter_shebangs_in_directory
(directory, filenames=None)¶
-
spack.hooks.sbang.
post_install
(spec)¶ This hook edits scripts so that they call /bin/bash $spack_prefix/bin/sbang instead of something longer than the shebang limit.
-
spack.hooks.sbang.
shebang_too_long
(path)¶ Detects whether a file has a shebang line that is too long.
spack.hooks.yaml_version_check module¶
Yaml Version Check is a module for ensuring that config file formats are compatible with the current version of Spack.
-
spack.hooks.yaml_version_check.
check_compiler_yaml_version
()¶
-
spack.hooks.yaml_version_check.
pre_run
()¶
Module contents¶
This package contains modules with hooks for various stages in the Spack install process. You can add modules here and they’ll be executed by package at various times during the package lifecycle.
Each hook is just a function that takes a package as a parameter. Hooks are not executed in any particular order.
Currently the following hooks are supported:
- pre_run()
- pre_install(spec)
- post_install(spec)
- pre_uninstall(spec)
- post_uninstall(spec)
This can be used to implement support for things like module systems (e.g. modules, dotkit, etc.) or to add other custom features.
-
class
spack.hooks.
HookRunner
(hook_name)¶ Bases:
object