92 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -- -*- lua -*-
 | |
| -- Module file created by spack (https://github.com/spack/spack) on {{ timestamp }}
 | |
| --
 | |
| -- {{ spec.short_spec }}
 | |
| --
 | |
| 
 | |
| {% block header %}
 | |
| {% if short_description %}
 | |
| whatis([[Name : {{ spec.name }}]])
 | |
| whatis([[Version : {{ spec.version }}]])
 | |
| whatis([[Short description : {{ short_description }}]])
 | |
| {% endif %}
 | |
| {% if configure_options %}
 | |
| whatis([[Configure options : {{ configure_options }}]])
 | |
| {% endif %}
 | |
| 
 | |
| {% if long_description %}
 | |
| help([[{{ long_description| textwrap(72)| join() }}]])
 | |
| {% endif %}
 | |
| {% endblock %}
 | |
| 
 | |
| {% block provides %}
 | |
| {# Prepend the path I unlock as a provider of #}
 | |
| {# services and set the families of services I provide #}
 | |
| {% if has_modulepath_modifications %}
 | |
| -- Services provided by the package
 | |
| {% for name in provides %}
 | |
| family("{{ name }}")
 | |
| {% endfor %}
 | |
| 
 | |
| -- Loading this module unlocks the path below unconditionally
 | |
| {% for path in unlocked_paths %}
 | |
| prepend_path("MODULEPATH", "{{ path }}")
 | |
| {% endfor %}
 | |
| 
 | |
| {# Try to see if missing providers have already #}
 | |
| {# been loaded into the environment #}
 | |
| {% if has_conditional_modifications %}
 | |
| -- Try to load variables into path to see if providers are there
 | |
| {% for name in missing %}
 | |
| local {{ name }}_name = os.getenv("LMOD_{{ name|upper() }}_NAME")
 | |
| local {{ name }}_version = os.getenv("LMOD_{{ name|upper() }}_VERSION")
 | |
| {% endfor %}
 | |
| 
 | |
| -- Change MODULEPATH based on the result of the tests above
 | |
| {% for condition, path in conditionally_unlocked_paths %}
 | |
| if {{ condition }} then
 | |
|   local t = pathJoin({{ path }})
 | |
|   prepend_path("MODULEPATH", t)
 | |
| end
 | |
| {% endfor %}
 | |
| 
 | |
| -- Set variables to notify the provider of the new services
 | |
| {% for name in provides %}
 | |
| setenv("LMOD_{{ name|upper() }}_NAME", "{{ name_part }}")
 | |
| setenv("LMOD_{{ name|upper() }}_VERSION", "{{ version_part }}")
 | |
| {% endfor %}
 | |
| {% endif %}
 | |
| {% endif %}
 | |
| {% endblock %}
 | |
| 
 | |
| {% block autoloads %}
 | |
| {% for module in autoload %}
 | |
| if not isloaded("{{ module }}") then
 | |
| {% if verbose %}
 | |
|     LmodMessage("Autoloading {{ module }}")
 | |
| {% endif %}
 | |
|     load("{{ module }}")
 | |
| end
 | |
| {% endfor %}
 | |
| {% endblock %}
 | |
| 
 | |
| {% block environment %}
 | |
| {% for command_name, cmd in environment_modifications %}
 | |
| {% if command_name == 'PrependPath' %}
 | |
| prepend_path("{{ cmd.name }}", "{{ cmd.value }}")
 | |
| {% elif command_name == 'AppendPath' %}
 | |
| append_path("{{ cmd.name }}", "{{ cmd.value }}")
 | |
| {% elif command_name == 'RemovePath' %}
 | |
| remove_path("{{ cmd.name }}", "{{ cmd.value }}")
 | |
| {% elif command_name == 'SetEnv' %}
 | |
| setenv("{{ cmd.name }}", "{{ cmd.value }}")
 | |
| {% elif command_name == 'UnsetEnv' %}
 | |
| unsetenv("{{ cmd.name }}")
 | |
| {% endif %}
 | |
| {% endfor %}
 | |
| {% endblock %}
 | |
| 
 | |
| {% block footer %}
 | |
| {# In case the module needs to be extended with custom LUA code #}
 | |
| {% endblock %}
 | 
