As LOADEDMODULES and MODULEPATH are defined empty in cmdModuleAutoinit
procedure, use the get-env procedure to manipulate these variables to
avoid accessing undefined variable on Windows platform (as setting these
variables to an empty string means to unset these variables on this
platform).
When an empty string is set to an environment variable on Windows
platform, this variable is unset yet still seen defined by 'info exists'
command on Tcl, which leads to errors when trying to access variable
content. So when trying to set an empty string to an environment
variable on Windows platform, call for variable unset instead to reflect
underlying OS behavior.
Report procedure call in addition to other debug messages through the
`debug2` verbosity level rather the `trace` level (that is preserved for
another task).
When -D/--debug option is set multiple times, `debug2` mode is set.
Introduce the `caller` argument to the reportDebug procedure to get the
ability to define the calling procedure name to report. This argument is
especially used by the initial reportDebug procedure set prior report
initialization, to send toward final reportDebug procedure the actual
caller name.
Add the --nearly-message option on module-forbid command to enable set
of specific additionnal error message when an attempt to evaluate a
*nearly forbidden* module is made.
When defined, record message as a property of the nearly-forbidden tag.
Produce a warning message when a module with *nearly-forbidden* is
evaluated. Message produced indicate the date time starting when module
will effectively be forbidden.
Update parseApplicationCriteriaArgs procedure to get a *near range in
seconds* as first argument, then determine in this procedure if the
*after* criteria is near. Add this information and the *after* criteria
value to the list of returned values.
With these new informations, the *nearly-forbidden* tag is set in
module-forbid for module specification that are close to reach the
*after* limit defined.
Introduce the `nearly_forbidden_days` configuration to determine the
number of days a module should be considered *nearly forbidden* prior
reaching its expiry date set by `module-forbid` modulefile command.
Default value for this option is obtained from
--with-nearly-forbidden-days configure option, which is set to 14 days
by default.
Configuration value can be superseded by use of
MODULES_NEARLY_FORBIDDEN_DAYS environment variable.
Add the ability to validate a configuration value against a value class
(integer, string, ...) rather a list of accepted values. See list of
accepted class names on Tcl `string is` command.
Introduce the --with-nearly-forbidden-days ./configure script option to
define the number of days a module is considered nearly forbidden prior
reaching its expiry date limit set by module-forbid command.
Add the --message option on module-forbid command to enable set of
specific additionnal error message when an attempt to evaluate a
forbidden module is made.
When defined, record message as a property of the forbidden tag.
Adapt setModspecTag/getModuleTag/isModuleTagged procedure to give the
ability to set a list of properties for a tag. Add getModuleTagProp
procedure to retrieve the properties associated to recorded tag.