Skip to content

Instantly share code, notes, and snippets.

@crazyhottommy
Forked from sbamin/example_modulefile.lua
Created September 15, 2021 15:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save crazyhottommy/8db0a01d9df85b8ddc2b308dd50ba6be to your computer and use it in GitHub Desktop.
Save crazyhottommy/8db0a01d9df85b8ddc2b308dd50ba6be to your computer and use it in GitHub Desktop.
Advanced Modulefile using lua syntax
--[[
## Modulefile in lua syntax
## Author: Samir Amin
## Read about Lmod
## https://lmod.readthedocs.io/en/latest/015_writing_modules.html
## https://lmod.readthedocs.io/en/latest/050_lua_modulefiles.html
## https://lmod.readthedocs.io/en/latest/020_advanced.html
--]]
--################################ INTERNAL VARS #################################
--Module Name and Version are parsed by Lmod from dir/version string in module path
local pkgName = myModuleName()
local version = myModuleVersion()
local pkgNameVer = myModuleFullName()
local approot = "/projects/verhaak-lab/amins/sumnerenv_os7/opt/apps"
local appbase = "java/jdk"
local pkgdir = pathJoin(approot,appbase,version)
local pkgbin = pathJoin(pkgdir,"bin")
local lib1 = pathJoin(pkgdir,"lib")
local lib2 = pathJoin(pkgdir,"lib/server")
local java_ldpath = lib1 .. ":" .. lib2
local default_java_home = os.getenv("JAVA_HOME")
local default_java_ldpath = os.getenv("JAVA_LD_LIBRARY_PATH")
--################################# MODULE INFO ##################################
whatis("Name: ".. pkgName)
whatis("Version: " .. version)
--################################## ENV SETUP ###################################
prepend_path("PATH", pkgbin)
prepend_path("JAVA_LD_LIBRARY_PATH", java_ldpath)
pushenv("JAVA_HOME", pkgdir)
--################################# MODULE LOAD ##################################
help(
"Loads " .. pkgNameVer .. '\nCheck env change, if any by\nmodule show ' .. pkgNameVer
)
if (mode() == "load") then
LmodMessage("## INFO ##\nLoading " .. pkgName .. version .. "from " .. pkgdir)
LmodMessage("\n## WARN ##\nChanged some default JAVA vars\nJAVA_HOME from " .. default_java_home .. " to " .. pkgdir .. "\nJAVA_LD_LIBRARY_PATH from " .. default_java_ldpath .. " to " .. java_ldpath)
end
if (mode() == "unload") then
LmodMessage("## INFO ##\nUnloading " .. pkgName .. version .. "from " .. pkgdir)
LmodMessage("\n## WARN ##\nResetting JAVA vars to defaults\nJAVA_HOME from " .. pkgdir .. " to " .. default_java_home .. "\nJAVA_LD_LIBRARY_PATH from " .. java_ldpath .. " to " .. default_java_ldpath)
end
--## END ##
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment