{"id":13896179,"url":"https://github.com/TACC/Lmod","last_synced_at":"2025-07-17T12:31:38.292Z","repository":{"id":7978705,"uuid":"9381512","full_name":"TACC/Lmod","owner":"TACC","description":"Lmod: An Environment Module System based on Lua, Reads TCL Modules, Supports a Software Hierarchy","archived":false,"fork":false,"pushed_at":"2024-11-19T19:21:12.000Z","size":37084,"stargazers_count":500,"open_issues_count":25,"forks_count":128,"subscribers_count":22,"default_branch":"main","last_synced_at":"2024-11-19T20:25:18.877Z","etag":null,"topics":["environment-modules","hpc","lmod","lua","tacc","xsede"],"latest_commit_sha":null,"homepage":"http://lmod.readthedocs.org","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TACC.png","metadata":{"files":{"readme":"README.design.md","changelog":null,"contributing":null,"funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-04-11T22:17:13.000Z","updated_at":"2024-11-19T19:21:16.000Z","dependencies_parsed_at":"2023-01-16T21:15:40.001Z","dependency_job_id":"81aff586-79a8-4d34-8706-a12e839233ee","html_url":"https://github.com/TACC/Lmod","commit_stats":{"total_commits":5985,"total_committers":65,"mean_commits":92.07692307692308,"dds":0.04377610693400169,"last_synced_commit":"eeaa4a83be90c77e071e0acd526b1e5c5826c8ad"},"previous_names":[],"tags_count":634,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TACC%2FLmod","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TACC%2FLmod/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TACC%2FLmod/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TACC%2FLmod/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TACC","download_url":"https://codeload.github.com/TACC/Lmod/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226260601,"owners_count":17596494,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["environment-modules","hpc","lmod","lua","tacc","xsede"],"created_at":"2024-08-06T18:02:42.931Z","updated_at":"2024-11-25T01:31:11.486Z","avatar_url":"https://github.com/TACC.png","language":"Lua","readme":"Lmod design\n===========\n\nThe style of variables is:\n`varT`: a table\n`varA`: an array\n\nSpider\n------\n\nSpider searches for module(names). There are 3 levels of spider:\n- level 0: just list all modules, no input given\n- level 1: search for a module with a given name\n- level 2: search for a module with a given name/version\n\nLevel 2 will show how to load the specified module in a hierarchy.\n\n`canonical`: the version according to Lmod\n`Version`: the version specify by whatis in the module (can be anything)\n`pv`: Python version (used to determine the latest version)\n`wv`: weighted version (user, system and module locale .modulerc)\n`luaExt`: location of the .lua in the filename (zero when tcl module)\n\nMainControl\n--------------\n\nThe MainControl is the heart of Lmod. An 'action' in a module file like `setenv('foo', 'bar')` has a different\nmeaning depending on the mode. For a load it will set `foo` while for a unload it will delete it.\nThere are 7 modes in Lmod:\n- Load\n- Unload\n- Access: for help and whatis messages\n- CheckSyntax: check if the module file is a valid module (a dummy run)\n- ComputeHash: generate a hash value for the contents of the module\n- DependencyCk: check if all 'depends_on' are still valid after a unload\n- MgrLoad: for a collection restore (loads are ignored)\n- Refresh: reloads the modules to make sure all shell functions and aliases are defined\n- Show: show the contents of the module\n- Spider: process module files for spider operations\n\nThe file `MainControl.lua` holds all code and the files `MC_\u003cmode\u003e.lua` assign what each action in a\nmodule exactly does. \n\nThe object MCP (MainControl Program) is created once and always points to a 'positive'\naction (a load basically). The lowercase mcp points to the current MainControl\nProgram. These variables are global.\n\nThe file `Hub.lua` is were the real work is being done. MainControl will decides which functions\nget called from this file.\n\nGeneral flow\n------------\n\nThe Lmod main is in `lmod.lua.in`. There the MainControl Program (MCP) object is created. The array\n`lmodCmdA` does the translation between user input and a Lmod command. The file `cmdfuncs.lua` holds\nall 'user' actions. The main will run a function from that file which will call MainControl which\ncalls Hub (or sometimes Hub directly).\n","funding_links":[],"categories":["Lua"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTACC%2FLmod","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTACC%2FLmod","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTACC%2FLmod/lists"}