Some variables, that were unquoted intentionally were converted to arrays.
According to ShellCheck's documentation:
Quoting variables prevents word splitting and glob expansion, and prevents
the script from breaking when input contains spaces, line feeds, glob
characters and such.
Related: https://www.shellcheck.net/wiki/SC2086
Related: #470
According to ShellCheck's documentation:
In the original code, the return value of mycmd in $(mycmd) is ignored,
and export will instead always return true. This may prevent conditionals,
set -e and traps from working correctly.
Related: https://www.shellcheck.net/wiki/SC2155
Related: #470
These occurrences do not cause any problems described below but it's better
to be verbose that we indeed want to access the first array element.
According to ShellCheck's documentation:
When referencing arrays, $myarray is equivalent to ${myarray[0]} --
it results in only the first of multiple elements.
Related: https://www.shellcheck.net/wiki/SC2128
Related: #470
According to ShellCheck's documentation:
Different shells support different features. To give effective advice,
ShellCheck needs to know which shell your script is going to run on.
Related: https://www.shellcheck.net/wiki/SC2148
Related: #470
Fix the siteconfig.tcl file of the log-module-command cookbook recipe
not to break when a file is sourced through cmdModuleSource. Limit the
addition of the 'auto' log field only if load evaluation comes from
cmdModuleLoad procedure.
Fixes#453
Improve the *Log module commands* cookbook to rely on the `trace` Tcl
command to track every modulefile evaluation and module/ml procedure
calls.
Fixes#412.
Update the *Source script in modulefile* cookbook recipe to add it a
*Usage with shell-specific scripts* section that demonstrate how to use
modulefiles with `source-sh` commands when software provide a specific
initialization script for each shell it supports.
Take this opportunity to improve the readability of this recipe by
coloring/highlighting shell session examples.
Fixes#399.
Code to handle the internal states of modulecmd have been reworked on
Modules v4.6. As a consequence several siteconfig.tcl extension scripts
described on documentation recipes have to be adapted.
Closes#396
Use inclusive terminology [1] to eliminate 'master' and 'slave' terms as
much as possible from code and documentation. 'master' has been changed
into 'main' and 'slave' into 'subordinate' or 'sub'.
After this change, some references to the 'master' and 'slave' word can
still be found in repository:
* `slaves` sub-command of `interp` Tcl command
* `--slave` option of `update-alternatives tool in RPM spec file
* `master_doc` attribute of Sphinx `conf.py` file
* git 'master' branch need to be renamed and tools referring it need to
be updated accordingly (configure, script/mpub, script/mrel)
[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb
Add authorship information, same header and comment structure for all
Tcl files to include these files in cookbook recipe document with Tcl
syntax highlight.
New cookbook discussing various strategies for creating modulefiles for
packages with multiple builds depending on previously loaded compiler,
MPI libraries etc. (E.g. handling different "flavors" of packages)
Specify language directive for included Tcl script files in cookbook
recipes to get their code highlighted in resulting HTML documents. As
Pygment Tcl lexer used by Sphinx does not support the whole Tcl syntax,
scripts of modulepaths-persist-over-sudo and test-modulefiles recipes
have been adapted to enable highlighting. Change has not been performed
over the expose-procs-vars-to-modulefiles and top-priority-values
recipes as their code cannot be adapted to match lexer needs.
During an additional evaluation triggered by an automated module
handling mechanism, ensure warning and error messages are reported under
the message block of the main evaluation.
Add a 'recordtop' argument to the reportWarning and reportError
procedures in order to indicate that the message should be recorded
under the top-level message block instead of the currently active
message block.
Fixes#252.
Add a cookbook section in the documentation and port there the 3
pre-existing recipes: inhibit-report-info, top-priority-values and
unload-firstly-loaded.
Move the examples files of these recipes from contrib/cookbook to
doc/example directory.