tcar_setModuleEnvironment(1)
============================
Name
----
tcar_setModuleEnvironment.sh - Initiate module environments.
Synopsis
--------
*tcar_setModuleEnvironment [-m "MODULE_NAME"] [-t "MODULE_TYPE"] [-g MODULE_ARGUMENT] ...*
Description
-----------
[[options]]
Options
-------
The *tcar_setModuleEnvironment* function accepts the following
options:
-m ::
This option specifies the name of the module you want to load.
-t::
This option specifies the type of the module you want to load.
Modules can be one of the following types:
+
top-module;;
This modules are stored in the first level of Modules directory.
This type of modules initiate module environments for specific
tasks so it can be called from anywhere inside *centos-art.sh*
script.
sub-module;;
This modules are stored from the second-level of Modules directory
on. This type of modules can be executed from top-modules,
sub-modules, or sib-modules but never the *centos-art.sh* file
itself.
sib-module;;
This modules are stored from the second-level of Modules directory
on. This type of modules can be executed from sub-modules or
sib-modules, but never top-modules or the *centos-art.sh* file
itself.
-g::
This option specifies the module-specific option you want to pass
for processing in the module environment you are about to execute.
Generally, module-specific options are passed through
*centos-art.sh* command-line but you may need to pass them
internally in some cases (e.g., you are executing a top-module
from a sub-module). If you need to pass more than one option, then
you need to put the -g option before each option you want to pass.
Bugs
----
In the very beginning of *tcar_setModuleEnvironment* function, it used
just non-array variables and it worked fine for top-module and sub-module
processing, however when it was needed to do sibling processing, it
didn't work as expected. The failure was produced because a wrong
variable assignment when tried to set the path of the next module to
load. There was not a clean way to ``remember'' what was the base
directory of the parent directory, so it ended up using the last
loaded module base directory which made impossible to load a sibling
module. The *tcar_setModuleEnvironment* function as implemented in
version 0.5 of The CentOS Artwork Repository, fixes this issue
replacing non-array variables by array variables which can remember
module information.
See also: https://centos.org.cu/bugs/[https://centos.org.cu/bugs/]
Author
------
The *centos-art.sh* script has received contribution from the
following people:
* Alain Reguera Delgado <mailto:al@centos.org.cu[al@centos.org.cu]>, 2009-2013
Copyright
---------
Copyright (C) 2009-2013 The CentOS Artwork SIG
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// vim: set syntax=asciidoc: