diff --git a/rt/mode_select/err.txt b/rt/mode_select/err.txt index 56b6a393e..e6bf2ae29 100644 --- a/rt/mode_select/err.txt +++ b/rt/mode_select/err.txt @@ -3,7 +3,7 @@ step 1 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load nil_mode_test =========================== Lmod has detected the following error: Syntax error in file: ProjectDIR/rt/mode_select/mf/Core/nil_mode_test/1.0.lua - with command: unknown, mode must be specified when using mode selector. + with command: setenv, mode must be specified when using mode selector. While processing the following module(s): Module fullname Module Filename nil_mode_test/1.0 ProjectDIR/rt/mode_select/mf/Core/nil_mode_test/1.0.lua @@ -14,86 +14,106 @@ lua ProjectDIR/src/lmod.in.lua shell --regression_testing list No modules loaded =========================== step 3 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +=========================== +step 4 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load invalid_mode_test =========================== Lmod has detected the following error: Syntax error in file: ProjectDIR/rt/mode_select/mf/Core/invalid_mode_test/1.0.lua - with command: unknown, invalid mode "invalid". Valid modes are: "load" and "unload". + with command: setenv, invalid mode "invalid". Valid modes are: "load" and "unload". While processing the following module(s): Module fullname Module Filename invalid_mode_test/1.0 ProjectDIR/rt/mode_select/mf/Core/invalid_mode_test/1.0.lua =========================== -step 4 +step 5 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== No modules loaded =========================== -step 5 +step 6 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +=========================== +step 7 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load empty_mode_test =========================== Lmod has detected the following error: Syntax error in file: ProjectDIR/rt/mode_select/mf/Core/empty_mode_test/1.0.lua - with command: unknown, mode must be specified when using mode selector. + with command: setenv, mode must be specified when using mode selector. While processing the following module(s): Module fullname Module Filename empty_mode_test/1.0 ProjectDIR/rt/mode_select/mf/Core/empty_mode_test/1.0.lua =========================== -step 6 +step 8 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== No modules loaded =========================== -step 7 +step 9 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +=========================== +step 10 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load mixed_load_test =========================== =========================== -step 8 +step 11 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== Currently Loaded Modules: 1) mixed_load_test/1.0 =========================== -step 9 +step 12 lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload mixed_load_test =========================== =========================== -step 10 +step 13 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== No modules loaded =========================== -step 11 +step 14 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +=========================== +step 15 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load mixed_unload_test =========================== =========================== -step 12 +step 16 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== Currently Loaded Modules: 1) mixed_unload_test/1.0 =========================== -step 13 +step 17 lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload mixed_unload_test =========================== =========================== -step 14 +step 18 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== No modules loaded =========================== -step 15 +step 19 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +=========================== +step 20 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load mixed_both_test =========================== =========================== -step 16 +step 21 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== Currently Loaded Modules: 1) mixed_both_test/1.0 =========================== -step 17 +step 22 lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload mixed_both_test =========================== =========================== -step 18 +step 23 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== No modules loaded diff --git a/rt/mode_select/out.txt b/rt/mode_select/out.txt index f9ae7cb54..fe8655a1b 100644 --- a/rt/mode_select/out.txt +++ b/rt/mode_select/out.txt @@ -13,11 +13,19 @@ _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"Pro export _ModuleTable_; =========================== step 3 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; +export MODULEPATH; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; +export _ModuleTable_; +=========================== +step 4 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load invalid_mode_test =========================== false =========================== -step 4 +step 5 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; @@ -25,12 +33,20 @@ export MODULEPATH; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 5 +step 6 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; +export MODULEPATH; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; +export _ModuleTable_; +=========================== +step 7 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load empty_mode_test =========================== false =========================== -step 6 +step 8 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; @@ -38,7 +54,15 @@ export MODULEPATH; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 7 +step 9 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; +export MODULEPATH; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; +export _ModuleTable_; +=========================== +step 10 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load mixed_load_test =========================== LOADEDMODULES=mixed_load_test/1.0; @@ -62,7 +86,7 @@ export _LMFILES_; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={mixed_load_test={fn="ProjectDIR/rt/mode_select/mf/Core/mixed_load_test/1.0.lua",fullName="mixed_load_test/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="mixed_load_test",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 8 +step 11 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; @@ -70,7 +94,7 @@ export MODULEPATH; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={mixed_load_test={fn="ProjectDIR/rt/mode_select/mf/Core/mixed_load_test/1.0.lua",fullName="mixed_load_test/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="mixed_load_test",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 9 +step 12 lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload mixed_load_test =========================== unset LOADEDMODULES; @@ -83,7 +107,7 @@ unset _LMFILES_; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 10 +step 13 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; @@ -91,7 +115,15 @@ export MODULEPATH; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 11 +step 14 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; +export MODULEPATH; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; +export _ModuleTable_; +=========================== +step 15 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load mixed_unload_test =========================== LOADEDMODULES=mixed_unload_test/1.0; @@ -109,7 +141,7 @@ export _LMFILES_; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={mixed_unload_test={fn="ProjectDIR/rt/mode_select/mf/Core/mixed_unload_test/1.0.lua",fullName="mixed_unload_test/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="mixed_unload_test",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 12 +step 16 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; @@ -117,7 +149,7 @@ export MODULEPATH; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={mixed_unload_test={fn="ProjectDIR/rt/mode_select/mf/Core/mixed_unload_test/1.0.lua",fullName="mixed_unload_test/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="mixed_unload_test",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 13 +step 17 lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload mixed_unload_test =========================== unset LOADEDMODULES; @@ -136,7 +168,7 @@ unset _LMFILES_; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 14 +step 18 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; @@ -144,7 +176,15 @@ export MODULEPATH; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 15 +step 19 +lua ProjectDIR/src/lmod.in.lua shell --regression_testing purge +=========================== +MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; +export MODULEPATH; +_ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; +export _ModuleTable_; +=========================== +step 20 lua ProjectDIR/src/lmod.in.lua shell --regression_testing load mixed_both_test =========================== LOADEDMODULES=mixed_both_test/1.0; @@ -172,7 +212,7 @@ export _ModuleTable_; __LMOD_STACK_MIXED_STACK=stack_both; export __LMOD_STACK_MIXED_STACK; =========================== -step 16 +step 21 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; @@ -180,7 +220,7 @@ export MODULEPATH; _ModuleTable_='_ModuleTable_={MTversion=3,depthT={},family={},mT={mixed_both_test={fn="ProjectDIR/rt/mode_select/mf/Core/mixed_both_test/1.0.lua",fullName="mixed_both_test/1.0",loadOrder=1,propT={},stackDepth=0,status="active",userName="mixed_both_test",wV="000000001.*zfinal",},},mpathA={"ProjectDIR/rt/mode_select/mf/Core",},systemBaseMPATH="ProjectDIR/rt/mode_select/mf/Core",}'; export _ModuleTable_; =========================== -step 17 +step 22 lua ProjectDIR/src/lmod.in.lua shell --regression_testing unload mixed_both_test =========================== unset LOADEDMODULES; @@ -203,7 +243,7 @@ export _ModuleTable_; __LMOD_STACK_MIXED_STACK=stack_both:stack_both; export __LMOD_STACK_MIXED_STACK; =========================== -step 18 +step 23 lua ProjectDIR/src/lmod.in.lua shell --regression_testing list =========================== MODULEPATH=ProjectDIR/rt/mode_select/mf/Core; diff --git a/src/modfuncs.lua b/src/modfuncs.lua index d8f859e30..65d41fcf0 100644 --- a/src/modfuncs.lua +++ b/src/modfuncs.lua @@ -304,7 +304,14 @@ function load_module(...) local argTable local mcp_old = mcp - mcp, argTable = l_list_2_Tbl( ...) + + -- If first argument is a table, add cmdName + local args = {...} + if type(args[1]) == "table" then + args[1].cmdName = "load" + end + + mcp, argTable = l_list_2_Tbl(unpack(args)) if (not l_validateModules("load", unpack(argTable))) then mcp = mcp_old @@ -380,7 +387,14 @@ function prepend_path(...) dbg.start{"prepend_path(",l_concatTbl({...},", "),")"} local argTable local mcp_old = mcp - mcp, argTable = l_list_2_Tbl(...) + + -- If first argument is a table, add cmdName + local args = {...} + if type(args[1]) == "table" then + args[1].cmdName = "prepend_path" + end + + mcp, argTable = l_list_2_Tbl(unpack(args)) if (not l_validateArgsWithValue("prepend_path", argTable)) then return end mcp:prepend_path(argTable) mcp = mcp_old @@ -394,7 +408,14 @@ function append_path(...) dbg.start{"append_path(",l_concatTbl({...},", "),")"} local argTable local mcp_old = mcp - mcp, argTable = l_list_2_Tbl(...) + + -- If first argument is a table, add cmdName + local args = {...} + if type(args[1]) == "table" then + args[1].cmdName = "append_path" + end + + mcp, argTable = l_list_2_Tbl(unpack(args)) if (not l_validateArgsWithValue("append_path", argTable)) then return end l_cleanupPathArgs(argTable) if (argTable[2]) then mcp:append_path(argTable) end @@ -409,7 +430,14 @@ function remove_path(...) dbg.start{"remove_path(",l_concatTbl({...},", "),")"} local argTable local mcp_old = mcp - mcp, argTable = l_list_2_Tbl(...) + + -- If first argument is a table, add cmdName + local args = {...} + if type(args[1]) == "table" then + args[1].cmdName = "remove_path" + end + + mcp, argTable = l_list_2_Tbl(unpack(args)) if (not l_validateArgsWithValue("remove_path", argTable)) then return end l_cleanupPathArgs(argTable) if (argTable[2]) then mcp:remove_path(argTable) end @@ -427,7 +455,14 @@ function pushenv(...) local argTable local mcp_old = mcp - mcp, argTable = l_list_2_Tbl( ...) + + -- If first argument is a table, add cmdName + local args = {...} + if type(args[1]) == "table" then + args[1].cmdName = "pushenv" + end + + mcp, argTable = l_list_2_Tbl(unpack(args)) if (not l_validateArgsWithValue("pushenv", argTable)) then return end @@ -454,7 +489,14 @@ function setenv(...) local argTable local mcp_old = mcp - mcp, argTable = l_list_2_Tbl( ...) + + -- If first argument is a table, add cmdName + local args = {...} + if type(args[1]) == "table" then + args[1].cmdName = "setenv" + end + + mcp, argTable = l_list_2_Tbl(unpack(args)) if (not l_validateArgsWithValue("setenv", argTable)) then return end @@ -472,7 +514,14 @@ function unsetenv(...) local argTable local mcp_old = mcp - mcp, argTable = l_list_2_Tbl( ...) + + -- If first argument is a table, add cmdName + local args = {...} + if type(args[1]) == "table" then + args[1].cmdName = "unsetenv" + end + + mcp, argTable = l_list_2_Tbl(unpack(args)) if (not l_validateArgsWithValue("unsetenv", argTable)) then return end