msgid "" msgstr "" "Project-Id-Version: understanding_modules.asciidoc 0.6\n" "POT-Creation-Date: 2013-11-07 14:18-0500\n" "PO-Revision-Date: 2013-11-07 14:18-0500\n" "Last-Translator: Localization SIG \n" "Language-Team: English\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" msgid "Understanding Modules" msgstr "Understanding Modules" msgid "Oct 2013" msgstr "Oct 2013" msgid "Alain" msgstr "Alain" msgid "Reguera" msgstr "Reguera" msgid "Delgado" msgstr "Delgado" msgid "al@centos.org.cu" msgstr "al@centos.org.cu" msgid "ARD" msgstr "ARD" msgid "0.1" msgstr "0.1" msgid "Overview" msgstr "Overview" msgid "" "From version 0.5, the centos-art.sh script introduces the idea of modules to its base design. " "Modules are a collection of functions written in Bash that can call " "one another to create individual execution environments. They may " "be nested to achieve high levels of maintainability and " "extensibility. This make possible for modules writers to divide " "complicated tasks into smaller tasks that can be easier to debug, " "maintain and share with other modules efficiently (e.g., instead of " "loading modules all at once, they are only loaded at demand and " "unset once they conclude their execution)." msgstr "" "From version 0.5, the centos-art.sh script introduces the idea of modules to its base design. " "Modules are a collection of functions written in Bash that can call " "one another to create individual execution environments. They may " "be nested to achieve high levels of maintainability and " "extensibility. This make possible for modules writers to divide " "complicated tasks into smaller tasks that can be easier to debug, " "maintain and share with other modules efficiently (e.g., instead of " "loading modules all at once, they are only loaded at demand and " "unset once they conclude their execution)." msgid "" "This article describes the modular design of centos-art.sh script. It is a good place for you to " "start if you are planning to contribute new module environments to " "centos-art.sh script or want " "to know more about how it works. The next section delves into what " "a module environment is, the three module types you can find in it " "and the correct way of execute each one of them." msgstr "" "This article describes the modular design of centos-art.sh script. It is a good place for you to " "start if you are planning to contribute new module environments to " "centos-art.sh script or want " "to know more about how it works. The next section delves into what " "a module environment is, the three module types you can find in it " "and the correct way of execute each one of them." msgid "Module Environment" msgstr "Module Environment" msgid "" "When you execute the centos-art.sh script you create an execution environment in which " "variables and functions are defined. The execution environment is " "the higher environment inside centos-art." "sh script. It is considered to have a “global” scope, so " "variables and functions defined in it are always available for any " "function execution made from it. You can control the execution " "environment of centos-art.sh " "script through files centos-art.sh and " "centos-art.conf.sh. These files don't provide " "too much functionality so module environments are executed from " "centos-art.sh, to extend its functionality." msgstr "" "When you execute the centos-art.sh script you create an execution environment in which " "variables and functions are defined. The execution environment is " "the higher environment inside centos-art." "sh script. It is considered to have a “global” scope, so " "variables and functions defined in it are always available for any " "function execution made from it. You can control the execution " "environment of centos-art.sh " "script through files centos-art.sh and " "centos-art.conf.sh. These files don't provide " "too much functionality so module environments are executed from " "centos-art.sh, to extend its functionality." msgid "" "Module environments are made of small functions that perform small " "tasks and can be further executed in a specific order to produce " "the desired result. Module environments are executed and destroyed " "at demand. Inside centos-art.sh, module environments can be either “parent modules,” " "“child modules,” or “sibling modules.”" msgstr "" "Module environments are made of small functions that perform small " "tasks and can be further executed in a specific order to produce " "the desired result. Module environments are executed and destroyed " "at demand. Inside centos-art.sh, module environments can be either “parent modules,” " "“child modules,” or “sibling modules.”" msgid "Parent Modules" msgstr "Parent Modules" msgid "" "Parent modules are initiated by executing the tcar_setModuleEnvironment function with the " "-t parent option set on it. " "Parent modules are very simple in design and you can use them to " "implement simple solutions quickly. Normally, when you execute a " "parent module, you initiate the highest module environment possible " "inside centos-art.sh script. " "Because of such high scope, parent modules are frequently used to " "define module's global variables, interpret module-specific options " "passed through the command-line and execute the appropriate actions " "based on them." msgstr "" "Parent modules are initiated by executing the tcar_setModuleEnvironment function with the " "-t parent option set on it. " "Parent modules are very simple in design and you can use them to " "implement simple solutions quickly. Normally, when you execute a " "parent module, you initiate the highest module environment possible " "inside centos-art.sh script. " "Because of such high scope, parent modules are frequently used to " "define module's global variables, interpret module-specific options " "passed through the command-line and execute the appropriate actions " "based on them." msgid "" "In , we have executed the " "hello module with the " "—greeting=hi and —debug options through the command-line. " "In this example, centos-art.sh " "script executes a parent module named hello, processes the module-specific options passed " "through the command-line, prints a greeting message to standard " "output and exits successfully." msgstr "" "In , we have executed the " "hello module with the " "—greeting=hi and —debug options through the command-line. " "In this example, centos-art.sh " "script executes a parent module named hello, processes the module-specific options passed " "through the command-line, prints a greeting message to standard " "output and exits successfully." msgid "Debugging execution of parent modules" msgstr "Debugging execution of parent modules" #, no-wrap msgid "" "Thu 10 Oct 2013 11:53:28 PM CDT =========================> [0] | main\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_BASEDIR Automation/Modules\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_NAME [0]=hello\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_TYPE parent\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_ARGUMENT --greeting=hi\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh\n" "Thu 10 Oct 2013 11:53:28 PM CDT TEXTDOMAIN hello.sh\n" "Thu 10 Oct 2013 11:53:28 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:53:28 PM CDT export -f hello\n" "Thu 10 Oct 2013 11:53:28 PM CDT export -f hello_getOptions\n" "Thu 10 Oct 2013 11:53:28 PM CDT -------------------------> hello --greeting=hi\n" "hi\n" "Thu 10 Oct 2013 11:53:28 PM CDT <------------------------- hello\n" "Thu 10 Oct 2013 11:53:28 PM CDT unset -f hello\n" "Thu 10 Oct 2013 11:53:28 PM CDT unset -f hello_getOptions\n" "Thu 10 Oct 2013 11:53:28 PM CDT <========================= [0] | main" msgstr "" "Thu 10 Oct 2013 11:53:28 PM CDT =========================> [0] | main\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_BASEDIR Automation/Modules\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_NAME [0]=hello\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_TYPE parent\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_ARGUMENT --greeting=hi\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs\n" "Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh\n" "Thu 10 Oct 2013 11:53:28 PM CDT TEXTDOMAIN hello.sh\n" "Thu 10 Oct 2013 11:53:28 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:53:28 PM CDT export -f hello\n" "Thu 10 Oct 2013 11:53:28 PM CDT export -f hello_getOptions\n" "Thu 10 Oct 2013 11:53:28 PM CDT -------------------------> hello --greeting=hi\n" "hi\n" "Thu 10 Oct 2013 11:53:28 PM CDT <------------------------- hello\n" "Thu 10 Oct 2013 11:53:28 PM CDT unset -f hello\n" "Thu 10 Oct 2013 11:53:28 PM CDT unset -f hello_getOptions\n" "Thu 10 Oct 2013 11:53:28 PM CDT <========================= [0] | main" msgid "" " describes an entire module " "environment in action. With this information you can create your " "own module environment, already. However, when your module is " "getting too much complicated you probably want to divide it in " "smaller pieces that you can execute accordingly, based on the " "purpose you defined for it. Such kind of division can be " "implemented as described in ." msgstr "" " describes an entire module " "environment in action. With this information you can create your " "own module environment, already. However, when your module is " "getting too much complicated you probably want to divide it in " "smaller pieces that you can execute accordingly, based on the " "purpose you defined for it. Such kind of division can be " "implemented as described in ." msgid "Summary" msgstr "Summary" msgid "" "This section has covered basic concepts related to module " "environment inside centos-art.sh script. The next section takes these concepts and focuses " "on the implementation of them. Once you finish it, you should be " "able of writing your own module environments from scratch inside " "centos-art.sh script." msgstr "" "This section has covered basic concepts related to module " "environment inside centos-art.sh script. The next section takes these concepts and focuses " "on the implementation of them. Once you finish it, you should be " "able of writing your own module environments from scratch inside " "centos-art.sh script." msgid "Module Implementation" msgstr "Module Implementation" msgid "" "The centos-art.sh script " "implements module environments inside the “Modules” directory, as described in ." msgstr "" "The centos-art.sh script " "implements module environments inside the “Modules” directory, as described in ." msgid "" "For example, consider the creation of a module named hello. The purpose of this module is to print " "a greeting message to standard output and then exit successfully. " "To create such a module, we need to create a directory named " "“Hello” inside the “Modules” directory and put an initialization " "file named “hello.sh” inside it. Because we want to execute the " "hello module from centos-art.sh script command-line, we " "put it in the first level of directories of Modules directory. See ." msgstr "" "For example, consider the creation of a module named hello. The purpose of this module is to print " "a greeting message to standard output and then exit successfully. " "To create such a module, we need to create a directory named " "“Hello” inside the “Modules” directory and put an initialization " "file named “hello.sh” inside it. Because we want to execute the " "hello module from centos-art.sh script command-line, we " "put it in the first level of directories of Modules directory. See ." msgid "Directory layout used by parent modules" msgstr "Directory layout used by parent modules" #, no-wrap msgid "" ".\n" "|-- COPYING \n" "|-- Locales/ \n" "|-- Manuals/ \n" "|-- Modules/ \n" "| `-- Hello/ \n" "| |-- hello.sh \n" "| `-- hello_getOptions.sh \n" "|-- Scripts/ \n" "|-- centos-art.conf.sh \n" "`-- centos-art.sh " msgstr "" ".\n" "|-- COPYING \n" "|-- Locales/ \n" "|-- Manuals/ \n" "|-- Modules/ \n" "| `-- Hello/ \n" "| |-- hello.sh \n" "| `-- hello_getOptions.sh \n" "|-- Scripts/ \n" "|-- centos-art.conf.sh \n" "`-- centos-art.sh " msgid "Script's copying conditions." msgstr "Script's copying conditions." msgid "Script's localization files." msgstr "Script's localization files." msgid "Script's documentation files." msgstr "Script's documentation files." msgid "Script's modules. Here is where you store parent modules." msgstr "Script's modules. Here is where you store parent modules." msgid "Parent directory of module named hello." msgstr "Parent directory of module named hello." msgid "Initialization file of module named hello." msgstr "Initialization file of module named hello." msgid "Function related to module named hello." msgstr "Function related to module named hello." msgid "Script's global functions." msgstr "Script's global functions." msgid "Script's configuration file." msgstr "Script's configuration file." msgid "Script's initialization file." msgstr "Script's initialization file." msgid "" " presents a complete module " "layout you can use as reference to create your own module " "implementations. However, it is not complete yet. At this point, " "when you execute centos-art.sh, it is able to find out hello module's initialization file and execute it but that " "prints an error message because the initialization file doesn't " "have a function definition inside. It is completely empty. In order " "for centos-art.sh script to do " "something useful, you need to write a function definition inside " "the initialization file, as described in ." msgstr "" " presents a complete module " "layout you can use as reference to create your own module " "implementations. However, it is not complete yet. At this point, " "when you execute centos-art.sh, it is able to find out hello module's initialization file and execute it but that " "prints an error message because the initialization file doesn't " "have a function definition inside. It is completely empty. In order " "for centos-art.sh script to do " "something useful, you need to write a function definition inside " "the initialization file, as described in ." msgid "The Initialization File" msgstr "The Initialization File" msgid "" "The module's initialization file contains the module's main " "function definition and a comment describing what it does on top of " "it. This comment includes a small description about what the " "function does, a written by section, the copyright note and the " "legal status of the file. The function definition is set later and " "must be written using the long definition format (i.e., it must " "begin with the word “function,” then the " "function name, and finally the “{” character). " "The name of the function is exactly the same of the initialization " "file but without the .sh extension. These " "conditions are required in order for centos-art.sh script to execute the function " "definition and destroy it when it is no longer used. See ." msgstr "" "The module's initialization file contains the module's main " "function definition and a comment describing what it does on top of " "it. This comment includes a small description about what the " "function does, a written by section, the copyright note and the " "legal status of the file. The function definition is set later and " "must be written using the long definition format (i.e., it must " "begin with the word “function,” then the " "function name, and finally the “{” character). " "The name of the function is exactly the same of the initialization " "file but without the .sh extension. These " "conditions are required in order for centos-art.sh script to execute the function " "definition and destroy it when it is no longer used. See ." msgid "" "The function definition is where you write all the commands you " "want the module runs, once executed. The function definition can be " "as simple as just one single line of code or as complex as you can " "imagine. It is the place where you express your solutions. However, " "when writing initialization files, it is considered a good practice " "to avoid any sort of complexity. Instead, try to write small and " "simple initialization files. In case you notice the initialization " "file is growing up inevitably, you can reduce its code by " "refactoring it. To do this, you can use resources like module " "related functions and child modules. These resources are described " "in , and they help you to " "keep the initialization file in a clean state, easy to understand, " "maintain and debug." msgstr "" "The function definition is where you write all the commands you " "want the module runs, once executed. The function definition can be " "as simple as just one single line of code or as complex as you can " "imagine. It is the place where you express your solutions. However, " "when writing initialization files, it is considered a good practice " "to avoid any sort of complexity. Instead, try to write small and " "simple initialization files. In case you notice the initialization " "file is growing up inevitably, you can reduce its code by " "refactoring it. To do this, you can use resources like module " "related functions and child modules. These resources are described " "in , and they help you to " "keep the initialization file in a clean state, easy to understand, " "maintain and debug." msgid "Initialization file used by hello module" msgstr "Initialization file used by hello module" #, no-wrap msgid "" "#!/bin/bash\n" "######################################################################\n" "#\n" "# hello.sh -- Print out greetings to standard output and exit\n" "# successfully.\n" "#\n" "# Written by:\n" "# * Alain Reguera Delgado <al@centos.org.cu>, 2013\n" "#\n" "# Copyright (C) 2009-2013 The CentOS Artwork SIG\n" "#\n" "# This program is free software; you can redistribute it and/or modify\n" "# it under the terms of the GNU General Public License as published by\n" "# the Free Software Foundation; either version 2 of the License, or (at\n" "# your option) any later version.\n" "#\n" "# This program is distributed in the hope that it will be useful, but\n" "# WITHOUT ANY WARRANTY; without even the implied warranty of\n" "# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" "# General Public License for more details.\n" "#\n" "# You should have received a copy of the GNU General Public License\n" "# along with this program; if not, write to the Free Software\n" "# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n" "#\n" "######################################################################\n" "\n" "function hello {\n" "\n" " tcar_printMessage \"`gettext \"Hello, World!\"`\" --as-stdout-line\n" "\n" "}" msgstr "" "#!/bin/bash\n" "######################################################################\n" "#\n" "# hello.sh -- Print out greetings to standard output and exit\n" "# successfully.\n" "#\n" "# Written by:\n" "# * Alain Reguera Delgado <al@centos.org.cu>, 2013\n" "#\n" "# Copyright (C) 2009-2013 The CentOS Artwork SIG\n" "#\n" "# This program is free software; you can redistribute it and/or modify\n" "# it under the terms of the GNU General Public License as published by\n" "# the Free Software Foundation; either version 2 of the License, or (at\n" "# your option) any later version.\n" "#\n" "# This program is distributed in the hope that it will be useful, but\n" "# WITHOUT ANY WARRANTY; without even the implied warranty of\n" "# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n" "# General Public License for more details.\n" "#\n" "# You should have received a copy of the GNU General Public License\n" "# along with this program; if not, write to the Free Software\n" "# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n" "#\n" "######################################################################\n" "\n" "function hello {\n" "\n" " tcar_printMessage \"`gettext \"Hello, World!\"`\" --as-stdout-line\n" "\n" "}" msgid "" "The function definition described in uses the tcar_printMessage global function to print localized versions of the string " "“Hello, World!” to standard output. Because there isn't no other " "command in the function definition, when the greeting message is " "printed out, centos-art.sh " "destroys the hello module and " "exit successfully. This process is more visible when also pass the " "—debug option. See ." msgstr "" "The function definition described in uses the tcar_printMessage global function to print localized versions of the string " "“Hello, World!” to standard output. Because there isn't no other " "command in the function definition, when the greeting message is " "printed out, centos-art.sh " "destroys the hello module and " "exit successfully. This process is more visible when also pass the " "—debug option. See ." msgid "" "Congratulations! You've implemented a module environment inside " "centos-art.sh script. With the " "information you have so far, you are able to create your own module " "environment implementations. The next section delves into available " "resources you can use to simplify module environments when the " "initialization file starts growing inevitably and complexity " "daemons begin hammering your head." msgstr "" "Congratulations! You've implemented a module environment inside " "centos-art.sh script. With the " "information you have so far, you are able to create your own module " "environment implementations. The next section delves into available " "resources you can use to simplify module environments when the " "initialization file starts growing inevitably and complexity " "daemons begin hammering your head." msgid "Module Optimization" msgstr "Module Optimization" msgid "" "The centos-art.sh script " "provides four resources you can use to optimize your module " "implementations. These resources are “related functions,” “child " "modules,” “sibling modules” and “recursive modules”." msgstr "" "The centos-art.sh script " "provides four resources you can use to optimize your module " "implementations. These resources are “related functions,” “child " "modules,” “sibling modules” and “recursive modules”." msgid "Related Functions" msgstr "Related Functions" msgid "" "Related functions are very useful when you need to simplify the " "function definition of one initialization file. For example, " "consider extending the hello " "module so it is able to interpret arguments passed through the " "command-line. Now, inside the initialization file, we have some " "variable definitions, one function call to a module related " "function named hello_getOptions, and a decision on how the greeting message must be " "printed out based on the collected actions. See ." msgstr "" "Related functions are very useful when you need to simplify the " "function definition of one initialization file. For example, " "consider extending the hello " "module so it is able to interpret arguments passed through the " "command-line. Now, inside the initialization file, we have some " "variable definitions, one function call to a module related " "function named hello_getOptions, and a decision on how the greeting message must be " "printed out based on the collected actions. See ." msgid "Initialization file used by hello module (extended)" msgstr "Initialization file used by hello module (extended)" #, no-wrap msgid "" "function hello {\n" "\n" " # Define default greeting message.\n" " local HELLO_WORLD=\"`gettext \"Hello, World!\"`\"\n" "\n" " # Define actions variable. Here is where actions related to\n" " # module-specific options are stored in for further processing.\n" " local ACTIONS=''\n" "\n" " # Interpret module-specific options and store related actions.\n" " hello_getOptions\n" "\n" " # Print greeting message\n" " if [[ -z ${ACTIONS} ]];then\n" " # Using parent module.\n" " tcar_printMessage \"${HELLO_WORLD}\" --as-stdout-line\n" " else\n" " # Using child module.\n" " tcar_setModuleEnvironment -m 'output' -t 'child'\n" " fi\n" "\n" "}" msgstr "" "function hello {\n" "\n" " # Define default greeting message.\n" " local HELLO_WORLD=\"`gettext \"Hello, World!\"`\"\n" "\n" " # Define actions variable. Here is where actions related to\n" " # module-specific options are stored in for further processing.\n" " local ACTIONS=''\n" "\n" " # Interpret module-specific options and store related actions.\n" " hello_getOptions\n" "\n" " # Print greeting message\n" " if [[ -z ${ACTIONS} ]];then\n" " # Using parent module.\n" " tcar_printMessage \"${HELLO_WORLD}\" --as-stdout-line\n" " else\n" " # Using child module.\n" " tcar_setModuleEnvironment -m 'output' -t 'child'\n" " fi\n" "\n" "}" msgid "" "When you execute the command centos-art." "sh hello with the —" "greeting=hi argument, centos-" "art.sh stores module-specific arguments inside the " "TCAR_MODULE_ARGUMENT variable, creates a list of " "all function definitions inside the module directory and exports " "them. This includes the function definition of the initialization " "file itself. Then centos-art.sh executes the function definition set inside the " "initialization file and leaves all other function definitions, " "already in memory, waiting for further execution. At this point, " "the hello initialization " "function sets some default values and execute the hello_getOptions function to parse all the " "arguments passed through the command-line and redefines the " "ACTIONS variable based on them. Using the " "ACTIONS variables it decides whether to print " "the greeting message immediately or execute the child modules named " "output so it decides what to " "do with the information collected so far." msgstr "" "When you execute the command centos-art." "sh hello with the —" "greeting=hi argument, centos-" "art.sh stores module-specific arguments inside the " "TCAR_MODULE_ARGUMENT variable, creates a list of " "all function definitions inside the module directory and exports " "them. This includes the function definition of the initialization " "file itself. Then centos-art.sh executes the function definition set inside the " "initialization file and leaves all other function definitions, " "already in memory, waiting for further execution. At this point, " "the hello initialization " "function sets some default values and execute the hello_getOptions function to parse all the " "arguments passed through the command-line and redefines the " "ACTIONS variable based on them. Using the " "ACTIONS variables it decides whether to print " "the greeting message immediately or execute the child modules named " "output so it decides what to " "do with the information collected so far." msgid "" " defines the options " "you can pass to hello module " "and the associated actions they must perform for each of them. " "Actions aren't immediately executed here. Instead, they are stored " "in the ACTIONS variable for further processing " "(e.g., we store the names of the modules we want to execute later). " "The ACTIONS variable was defined in the " "initialization file so it has a global scope inside the module " "environment and is reachable from any related function executed " "inside it. Storing the actions this way lets the hello module to collect information about " "different actions and execute them all in just one command. When " "all options have been parsed, only non-option arguments remain in " "the TCAR_MODULE_ARGUMENT variable." msgstr "" " defines the options " "you can pass to hello module " "and the associated actions they must perform for each of them. " "Actions aren't immediately executed here. Instead, they are stored " "in the ACTIONS variable for further processing " "(e.g., we store the names of the modules we want to execute later). " "The ACTIONS variable was defined in the " "initialization file so it has a global scope inside the module " "environment and is reachable from any related function executed " "inside it. Storing the actions this way lets the hello module to collect information about " "different actions and execute them all in just one command. When " "all options have been parsed, only non-option arguments remain in " "the TCAR_MODULE_ARGUMENT variable." msgid "Related function definition (hello_getOptions)" msgstr "Related function definition (hello_getOptions)" #, no-wrap msgid "" "function hello_getOptions {\n" "\n" " # Define short options we want to support.\n" " local ARGSS=\"h::,v,g:,l,u,c,r\"\n" "\n" " # Define long options we want to support.\n" " local ARGSL=\"help::,version,greeting:,lower,upper,camel,random\"\n" "\n" " # Redefine arguments using getopt(1) command parser.\n" " tcar_setModuleArguments\n" "\n" " # Reset positional parameters on this function, using output\n" " # produced from (getopt) arguments parser.\n" " eval set -- \"${TCAR_MODULE_ARGUMENT}\"\n" "\n" " # Look for options passed through command-line.\n" " while true; do\n" " case \"${1}\" in\n" "\n" " -h | --help )\n" " tcar_printHelp \"${2}\"\n" " ;;\n" "\n" " -v | --version )\n" " tcar_printVersion \"${TCAR_MODULE_NAME}\"\n" " ;;\n" "\n" " -g | --greeting )\n" " HELLO_WORLD=\"${2:-${HELLO_WORLD}}\"\n" " shift 2\n" " ;;\n" "\n" " -l | --lower )\n" " ACTIONS=\"lower ${ACTIONS}\"\n" " shift 1\n" " ;;\n" "\n" " -u | --upper )\n" " ACTIONS=\"upper ${ACTIONS}\"\n" " shift 1\n" " ;;\n" "\n" " -c | --camel )\n" " ACTIONS=\"camel ${ACTIONS}\"\n" " shift 1\n" " ;;\n" "\n" " -r | --random )\n" " ACTIONS=\"random ${ACTIONS}\"\n" " shift 1\n" " ;;\n" "\n" " -- )\n" " shift 1\n" " break\n" " ;;\n" " esac\n" " done\n" "\n" " # Redefine arguments using current positional parameters. Only\n" " # paths should remain as arguments, at this point.\n" " TCAR_MODULE_ARGUMENT=\"${@}\"\n" "\n" "}" msgstr "" "function hello_getOptions {\n" "\n" " # Define short options we want to support.\n" " local ARGSS=\"h::,v,g:,l,u,c,r\"\n" "\n" " # Define long options we want to support.\n" " local ARGSL=\"help::,version,greeting:,lower,upper,camel,random\"\n" "\n" " # Redefine arguments using getopt(1) command parser.\n" " tcar_setModuleArguments\n" "\n" " # Reset positional parameters on this function, using output\n" " # produced from (getopt) arguments parser.\n" " eval set -- \"${TCAR_MODULE_ARGUMENT}\"\n" "\n" " # Look for options passed through command-line.\n" " while true; do\n" " case \"${1}\" in\n" "\n" " -h | --help )\n" " tcar_printHelp \"${2}\"\n" " ;;\n" "\n" " -v | --version )\n" " tcar_printVersion \"${TCAR_MODULE_NAME}\"\n" " ;;\n" "\n" " -g | --greeting )\n" " HELLO_WORLD=\"${2:-${HELLO_WORLD}}\"\n" " shift 2\n" " ;;\n" "\n" " -l | --lower )\n" " ACTIONS=\"lower ${ACTIONS}\"\n" " shift 1\n" " ;;\n" "\n" " -u | --upper )\n" " ACTIONS=\"upper ${ACTIONS}\"\n" " shift 1\n" " ;;\n" "\n" " -c | --camel )\n" " ACTIONS=\"camel ${ACTIONS}\"\n" " shift 1\n" " ;;\n" "\n" " -r | --random )\n" " ACTIONS=\"random ${ACTIONS}\"\n" " shift 1\n" " ;;\n" "\n" " -- )\n" " shift 1\n" " break\n" " ;;\n" " esac\n" " done\n" "\n" " # Redefine arguments using current positional parameters. Only\n" " # paths should remain as arguments, at this point.\n" " TCAR_MODULE_ARGUMENT=\"${@}\"\n" "\n" "}" msgid "" " presents the " "standard construction we use inside centos-art.sh script for parsing arguments passed " "through the command-line in a per-module basis. As convention, all " "the parent modules you write must be able to interpret the " "—help and —version options using the construction " "described here." msgstr "" " presents the " "standard construction we use inside centos-art.sh script for parsing arguments passed " "through the command-line in a per-module basis. As convention, all " "the parent modules you write must be able to interpret the " "—help and —version options using the construction " "described here." msgid "" "Related functions are very useful when you are refactoring the " "initialization file of a module. However, they aren't so efficient " "when you need to execute them at demand (e.g., based on specific " "conditions). When a module is executed, related functions are " "exported to centos-art.sh " "script execution environment. They remain there, consuming memory, " "until the module they belong to is destroyed. If you create a " "related function and never execute it, it will consume memory, as " "well. So, use related functions when you are absolutely sure they " "will be executed at some point, in one single iteration of " "centos-art.sh script. If you " "need to execute functions at demand, use child modules, instead." msgstr "" "Related functions are very useful when you are refactoring the " "initialization file of a module. However, they aren't so efficient " "when you need to execute them at demand (e.g., based on specific " "conditions). When a module is executed, related functions are " "exported to centos-art.sh " "script execution environment. They remain there, consuming memory, " "until the module they belong to is destroyed. If you create a " "related function and never execute it, it will consume memory, as " "well. So, use related functions when you are absolutely sure they " "will be executed at some point, in one single iteration of " "centos-art.sh script. If you " "need to execute functions at demand, use child modules, instead." msgid "Child Modules" msgstr "Child Modules" msgid "" "Child modules are initiated by executing the tcar_setModuleEnvironment function with the -t child option set on it. Child modules " "have the characteristic of being nested modules. They cannot be " "executed from the command-line. Normally, child modules are " "executed from parent modules but they can be executed from other " "child modules, too. When several child modules are executed in one " "single iteration of centos-art.sh, they create a chain of modules. A chain of modules is " "very useful in situations where you want to divide one large task " "into smaller tasks and also control which of these smaller tasks is " "executed based on specific conditions (e.g., you may want to render " "images or documentation, but not both, in one single iteration of " "centos-art.sh script). In a " "chain of modules, lower modules in the chain (those started last) " "have access to information set by modules higher in the chain " "(those started first), but not the opposite. When processing " "information this way, modules aren't destroyed until the last " "module executed in the chain has finished its work (e.g., all the " "commands inside it have been executed). At that point, child " "modules are destroyed in the reverse order they were executed." msgstr "" "Child modules are initiated by executing the tcar_setModuleEnvironment function with the -t child option set on it. Child modules " "have the characteristic of being nested modules. They cannot be " "executed from the command-line. Normally, child modules are " "executed from parent modules but they can be executed from other " "child modules, too. When several child modules are executed in one " "single iteration of centos-art.sh, they create a chain of modules. A chain of modules is " "very useful in situations where you want to divide one large task " "into smaller tasks and also control which of these smaller tasks is " "executed based on specific conditions (e.g., you may want to render " "images or documentation, but not both, in one single iteration of " "centos-art.sh script). In a " "chain of modules, lower modules in the chain (those started last) " "have access to information set by modules higher in the chain " "(those started first), but not the opposite. When processing " "information this way, modules aren't destroyed until the last " "module executed in the chain has finished its work (e.g., all the " "commands inside it have been executed). At that point, child " "modules are destroyed in the reverse order they were executed." msgid "" "For example, when you execute the hello module with both —debug and —upper option, " "centos-art.sh script creates a " "chain of three modules to produce the greeting message. Firstly, it " "begins by executing the parent module named hello, then it continues with the child module named " "output which in turn executes " "the child module name lower to " "finally print the expected greeting message. In this example, the " "module named lower is the last " "module in the chain of executed modules. It has access to all " "information defined by earlier modules (e.g., in hello and output modules) and none of its earlier modules will be " "destroyed until it has finished its work. This process becomes more " "visible when you take a look at ." msgstr "" "For example, when you execute the hello module with both —debug and —upper option, " "centos-art.sh script creates a " "chain of three modules to produce the greeting message. Firstly, it " "begins by executing the parent module named hello, then it continues with the child module named " "output which in turn executes " "the child module name lower to " "finally print the expected greeting message. In this example, the " "module named lower is the last " "module in the chain of executed modules. It has access to all " "information defined by earlier modules (e.g., in hello and output modules) and none of its earlier modules will be " "destroyed until it has finished its work. This process becomes more " "visible when you take a look at ." msgid "Debugging execution of child modules" msgstr "Debugging execution of child modules" #, no-wrap msgid "" "Thu 10 Oct 2013 11:52:41 PM CDT =========================> [0] | main\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [0]=hello\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE parent\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT --upper --greeting=hi\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh\n" "Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAIN hello.sh\n" "Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:52:41 PM CDT export -f hello\n" "Thu 10 Oct 2013 11:52:41 PM CDT export -f hello_getOptions\n" "Thu 10 Oct 2013 11:52:41 PM CDT -------------------------> hello --upper --greeting=hi\n" "Thu 10 Oct 2013 11:52:41 PM CDT =========================> [1] | hello\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [1]=output\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST output\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh\n" "Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAIN output.sh\n" "Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:52:41 PM CDT export -f output\n" "Thu 10 Oct 2013 11:52:41 PM CDT -------------------------> output\n" "Thu 10 Oct 2013 11:52:41 PM CDT =========================> [2] | output\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [2]=upper\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST camel|lower|random|upper\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Upper\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Upper/Modules\n" "Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Upper/Manuals\n" "Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales\n" "Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Upper/Configs\n" "Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Upper/upper.sh\n" "Thu 10 Oct 2013 11:52:42 PM CDT TEXTDOMAIN upper.sh\n" "Thu 10 Oct 2013 11:52:42 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales\n" "Thu 10 Oct 2013 11:52:42 PM CDT export -f upper\n" "Thu 10 Oct 2013 11:52:42 PM CDT -------------------------> upper\n" "HI\n" "Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- upper\n" "Thu 10 Oct 2013 11:52:42 PM CDT unset -f upper\n" "Thu 10 Oct 2013 11:52:42 PM CDT <========================= [2] | output\n" "Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- output\n" "Thu 10 Oct 2013 11:52:42 PM CDT unset -f output\n" "Thu 10 Oct 2013 11:52:42 PM CDT <========================= [1] | hello\n" "Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- hello\n" "Thu 10 Oct 2013 11:52:42 PM CDT unset -f hello\n" "Thu 10 Oct 2013 11:52:42 PM CDT unset -f hello_getOptions\n" "Thu 10 Oct 2013 11:52:42 PM CDT <========================= [0] | main" msgstr "" "Thu 10 Oct 2013 11:52:41 PM CDT =========================> [0] | main\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [0]=hello\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE parent\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT --upper --greeting=hi\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh\n" "Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAIN hello.sh\n" "Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:52:41 PM CDT export -f hello\n" "Thu 10 Oct 2013 11:52:41 PM CDT export -f hello_getOptions\n" "Thu 10 Oct 2013 11:52:41 PM CDT -------------------------> hello --upper --greeting=hi\n" "Thu 10 Oct 2013 11:52:41 PM CDT =========================> [1] | hello\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [1]=output\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST output\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh\n" "Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAIN output.sh\n" "Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:52:41 PM CDT export -f output\n" "Thu 10 Oct 2013 11:52:41 PM CDT -------------------------> output\n" "Thu 10 Oct 2013 11:52:41 PM CDT =========================> [2] | output\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [2]=upper\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST camel|lower|random|upper\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Upper\n" "Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Upper/Modules\n" "Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Upper/Manuals\n" "Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales\n" "Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Upper/Configs\n" "Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Upper/upper.sh\n" "Thu 10 Oct 2013 11:52:42 PM CDT TEXTDOMAIN upper.sh\n" "Thu 10 Oct 2013 11:52:42 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales\n" "Thu 10 Oct 2013 11:52:42 PM CDT export -f upper\n" "Thu 10 Oct 2013 11:52:42 PM CDT -------------------------> upper\n" "HI\n" "Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- upper\n" "Thu 10 Oct 2013 11:52:42 PM CDT unset -f upper\n" "Thu 10 Oct 2013 11:52:42 PM CDT <========================= [2] | output\n" "Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- output\n" "Thu 10 Oct 2013 11:52:42 PM CDT unset -f output\n" "Thu 10 Oct 2013 11:52:42 PM CDT <========================= [1] | hello\n" "Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- hello\n" "Thu 10 Oct 2013 11:52:42 PM CDT unset -f hello\n" "Thu 10 Oct 2013 11:52:42 PM CDT unset -f hello_getOptions\n" "Thu 10 Oct 2013 11:52:42 PM CDT <========================= [0] | main" msgid "" "The module environment described in shows the child modules' ability of reducing scope as " "they get deeper in the chain of executed modules. However, child " "modules lack the possibility of nest modules that share the same " "scope. For example, in the hello module described above, you cannot execute the modules " "lower or upper from camel module, as if they were child modules of it. That is not " "possible because they all have the same scope, which is, to print " "the greeting message to standard output. Child modules are " "conceived to reduce the module scope as new child modules are " "executed. When you need to execute new module environments and, " "also, retain the last scope from which the new module is executed, " "you need to use “sibling modules,” instead." msgstr "" "The module environment described in shows the child modules' ability of reducing scope as " "they get deeper in the chain of executed modules. However, child " "modules lack the possibility of nest modules that share the same " "scope. For example, in the hello module described above, you cannot execute the modules " "lower or upper from camel module, as if they were child modules of it. That is not " "possible because they all have the same scope, which is, to print " "the greeting message to standard output. Child modules are " "conceived to reduce the module scope as new child modules are " "executed. When you need to execute new module environments and, " "also, retain the last scope from which the new module is executed, " "you need to use “sibling modules,” instead." msgid "Sibling Modules" msgstr "Sibling Modules" msgid "" "Sibling modules are initiated by executing the tcar_setModuleEnvironment function with the " "-t sibling option set on it. " "Sibling modules are another type of nested modules but, in contrast " "with child modules, sibling modules cannot be executed from parent " "modules. Normally, sibling modules are executed from other sibling " "modules but, considering the context, they can be executed from " "child module too, to initiate sibling processing. When several " "siblings modules are executed, they also build a chain of modules. " "In contrast with the chain of child modules, the chain of sibling " "modules destroys the last sibling module executed before executing " "the next sibling module. This make the chain to stop its growing at " "sibling module processing, unless you call a child module from a " "sibling module. In this case, the chain expansion would continue as " "long as the number of child modules you execute. This process " "becomes more visible when you take a look at ." msgstr "" "Sibling modules are initiated by executing the tcar_setModuleEnvironment function with the " "-t sibling option set on it. " "Sibling modules are another type of nested modules but, in contrast " "with child modules, sibling modules cannot be executed from parent " "modules. Normally, sibling modules are executed from other sibling " "modules but, considering the context, they can be executed from " "child module too, to initiate sibling processing. When several " "siblings modules are executed, they also build a chain of modules. " "In contrast with the chain of child modules, the chain of sibling " "modules destroys the last sibling module executed before executing " "the next sibling module. This make the chain to stop its growing at " "sibling module processing, unless you call a child module from a " "sibling module. In this case, the chain expansion would continue as " "long as the number of child modules you execute. This process " "becomes more visible when you take a look at ." msgid "" "In , we've executed the " "hello module with the " "—greeting=hi, —camel, and —debug options. In this example, centos-art.sh script executes the hello module then the output module which in turn executes the camel module. At this point, can " "appreciate how the chain of modules stop growing. Observe that " "camel module has gained the " "position 2 in the chain of modules and executes the upper module which takes the position 3, as " "expected. Now, when upper " "module finishes its work it is destroyed and the module's counter " "is reset to its previous value which is 2 (the one set by camel module). Then, camel executes the lower module which take position 3 at the chain of " "modules until it finishes. When it finishes, the camel module finishes its work and is " "destroyed, then output, then " "hello." msgstr "" "In , we've executed the " "hello module with the " "—greeting=hi, —camel, and —debug options. In this example, centos-art.sh script executes the hello module then the output module which in turn executes the camel module. At this point, can " "appreciate how the chain of modules stop growing. Observe that " "camel module has gained the " "position 2 in the chain of modules and executes the upper module which takes the position 3, as " "expected. Now, when upper " "module finishes its work it is destroyed and the module's counter " "is reset to its previous value which is 2 (the one set by camel module). Then, camel executes the lower module which take position 3 at the chain of " "modules until it finishes. When it finishes, the camel module finishes its work and is " "destroyed, then output, then " "hello." msgid "Debugging execution of sibling modules" msgstr "Debugging execution of sibling modules" #, no-wrap msgid "" "Thu 10 Oct 2013 11:51:42 PM CDT =========================> [0] | main\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_BASEDIR Automation/Modules\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_NAME [0]=hello\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_TYPE parent\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_ARGUMENT --camel --greeting=hi\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh\n" "Thu 10 Oct 2013 11:51:42 PM CDT TEXTDOMAIN hello.sh\n" "Thu 10 Oct 2013 11:51:42 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT export -f hello\n" "Thu 10 Oct 2013 11:51:43 PM CDT export -f hello_getOptions\n" "Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> hello --camel --greeting=hi\n" "Thu 10 Oct 2013 11:51:43 PM CDT =========================> [1] | hello\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [1]=output\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST output\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN output.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT export -f output\n" "Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> output\n" "Thu 10 Oct 2013 11:51:43 PM CDT =========================> [2] | output\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [2]=camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Camel/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Camel/Manuals\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Camel/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Camel/Configs\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Camel/camel.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN camel.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Camel/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT export -f camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT =========================> [3] | camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [3]=upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE sibling\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Upper/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Upper/Manuals\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Upper/Configs\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Upper/upper.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN upper.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT export -f upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> upper\n" "H\n" "Thu 10 Oct 2013 11:51:43 PM CDT <------------------------- upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT unset -f upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT <========================= [3] | camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT =========================> [3] | camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [3]=lower\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE sibling\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Lower\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Lower/Modules\n" "Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Lower/Manuals\n" "Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Lower/Locales\n" "Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Lower/Configs\n" "Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Lower/lower.sh\n" "Thu 10 Oct 2013 11:51:44 PM CDT TEXTDOMAIN lower.sh\n" "Thu 10 Oct 2013 11:51:44 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Lower/Locales\n" "Thu 10 Oct 2013 11:51:44 PM CDT export -f lower\n" "Thu 10 Oct 2013 11:51:44 PM CDT -------------------------> lower\n" "i\n" "Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- lower\n" "Thu 10 Oct 2013 11:51:44 PM CDT unset -f lower\n" "Thu 10 Oct 2013 11:51:44 PM CDT <========================= [3] | camel\n" "Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- camel\n" "Thu 10 Oct 2013 11:51:44 PM CDT unset -f camel\n" "Thu 10 Oct 2013 11:51:44 PM CDT <========================= [2] | output\n" "Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- output\n" "Thu 10 Oct 2013 11:51:44 PM CDT unset -f output\n" "Thu 10 Oct 2013 11:51:44 PM CDT <========================= [1] | hello\n" "Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- hello\n" "Thu 10 Oct 2013 11:51:44 PM CDT unset -f hello\n" "Thu 10 Oct 2013 11:51:44 PM CDT unset -f hello_getOptions\n" "Thu 10 Oct 2013 11:51:44 PM CDT <========================= [0] | main" msgstr "" "Thu 10 Oct 2013 11:51:42 PM CDT =========================> [0] | main\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_BASEDIR Automation/Modules\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_NAME [0]=hello\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_TYPE parent\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_ARGUMENT --camel --greeting=hi\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs\n" "Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh\n" "Thu 10 Oct 2013 11:51:42 PM CDT TEXTDOMAIN hello.sh\n" "Thu 10 Oct 2013 11:51:42 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT export -f hello\n" "Thu 10 Oct 2013 11:51:43 PM CDT export -f hello_getOptions\n" "Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> hello --camel --greeting=hi\n" "Thu 10 Oct 2013 11:51:43 PM CDT =========================> [1] | hello\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [1]=output\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST output\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN output.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT export -f output\n" "Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> output\n" "Thu 10 Oct 2013 11:51:43 PM CDT =========================> [2] | output\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [2]=camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Camel/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Camel/Manuals\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Camel/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Camel/Configs\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Camel/camel.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN camel.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Camel/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT export -f camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT =========================> [3] | camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [3]=upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE sibling\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Upper/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Upper/Manuals\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Upper/Configs\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Upper/upper.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN upper.sh\n" "Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales\n" "Thu 10 Oct 2013 11:51:43 PM CDT export -f upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> upper\n" "H\n" "Thu 10 Oct 2013 11:51:43 PM CDT <------------------------- upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT unset -f upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT <========================= [3] | camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT =========================> [3] | camel\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [3]=lower\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE sibling\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Lower\n" "Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Lower/Modules\n" "Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Lower/Manuals\n" "Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Lower/Locales\n" "Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Lower/Configs\n" "Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Lower/lower.sh\n" "Thu 10 Oct 2013 11:51:44 PM CDT TEXTDOMAIN lower.sh\n" "Thu 10 Oct 2013 11:51:44 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Lower/Locales\n" "Thu 10 Oct 2013 11:51:44 PM CDT export -f lower\n" "Thu 10 Oct 2013 11:51:44 PM CDT -------------------------> lower\n" "i\n" "Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- lower\n" "Thu 10 Oct 2013 11:51:44 PM CDT unset -f lower\n" "Thu 10 Oct 2013 11:51:44 PM CDT <========================= [3] | camel\n" "Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- camel\n" "Thu 10 Oct 2013 11:51:44 PM CDT unset -f camel\n" "Thu 10 Oct 2013 11:51:44 PM CDT <========================= [2] | output\n" "Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- output\n" "Thu 10 Oct 2013 11:51:44 PM CDT unset -f output\n" "Thu 10 Oct 2013 11:51:44 PM CDT <========================= [1] | hello\n" "Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- hello\n" "Thu 10 Oct 2013 11:51:44 PM CDT unset -f hello\n" "Thu 10 Oct 2013 11:51:44 PM CDT unset -f hello_getOptions\n" "Thu 10 Oct 2013 11:51:44 PM CDT <========================= [0] | main" msgid "" " shows a single iteration " "of centos-art.sh script " "executing different types of modules. Normally, one module is " "executed at some point and destroyed at the same point when it has " "finished its work, however, what if the next immediate module you " "are about to execute is the same module you are about to destroyed? " "This is, you need to execute the last module in the chain of " "executed modules again, but, this time, from itself. In cases like " "this, the centos-art.sh script " "doesn't destroy the last module. It cannot, because you are " "certainly executing a new module from itself, so it has to wait for " "this new call to finish in order to be destroyed. This kind of " "processing is known as processing modules recursively." msgstr "" " shows a single iteration " "of centos-art.sh script " "executing different types of modules. Normally, one module is " "executed at some point and destroyed at the same point when it has " "finished its work, however, what if the next immediate module you " "are about to execute is the same module you are about to destroyed? " "This is, you need to execute the last module in the chain of " "executed modules again, but, this time, from itself. In cases like " "this, the centos-art.sh script " "doesn't destroy the last module. It cannot, because you are " "certainly executing a new module from itself, so it has to wait for " "this new call to finish in order to be destroyed. This kind of " "processing is known as processing modules recursively." msgid "Recursive Modules" msgstr "Recursive Modules" msgid "" "When one module environment executes itself we are in presence of a " "recursive module execution. The execution of modules recursively " "doesn't destroy the last module in the chain of executed modules " "and doesn't increment or decrement the module counter either. The " "module counter is somehow frozen until a different module " "environment is executed. In these cases, the last module " "environment remains in memory for the new module execution to make " "use of. This process becomes more visible when you take a look at " "." msgstr "" "When one module environment executes itself we are in presence of a " "recursive module execution. The execution of modules recursively " "doesn't destroy the last module in the chain of executed modules " "and doesn't increment or decrement the module counter either. The " "module counter is somehow frozen until a different module " "environment is executed. In these cases, the last module " "environment remains in memory for the new module execution to make " "use of. This process becomes more visible when you take a look at " "." msgid "" "When you execute modules recursively, you should be very careful " "not to get trapped into an endless loop." msgstr "" "When you execute modules recursively, you should be very careful " "not to get trapped into an endless loop." msgid "" "In , we've executed the " "hello module with the " "—greeting=hello, —random, and —" "debug options. In this example, centos-art.sh script executes a parent module named " "hello which in turn executes a " "child module named output " "which in turn executes a child module named random. At this point, the random modules executes itself five times (the number " "of characters passed as value to greeting option) to print out " "random letters from the greeting message. The output may have no " "much sense on itself but the related debugging information helps to " "understand the execution of modules recursively." msgstr "" "In , we've executed the " "hello module with the " "—greeting=hello, —random, and —" "debug options. In this example, centos-art.sh script executes a parent module named " "hello which in turn executes a " "child module named output " "which in turn executes a child module named random. At this point, the random modules executes itself five times (the number " "of characters passed as value to greeting option) to print out " "random letters from the greeting message. The output may have no " "much sense on itself but the related debugging information helps to " "understand the execution of modules recursively." msgid "Processing execution of modules recursively" msgstr "Processing execution of modules recursively" #, no-wrap msgid "" "Thu 10 Oct 2013 11:50:03 PM CDT =========================> [0] | main\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_BASEDIR Automation/Modules\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_NAME [0]=hello\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_TYPE parent\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_ARGUMENT --random --greeting=Hello\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN hello.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT export -f hello\n" "Thu 10 Oct 2013 11:50:04 PM CDT export -f hello_getOptions\n" "Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> hello --random --greeting=Hello\n" "Thu 10 Oct 2013 11:50:04 PM CDT =========================> [1] | hello\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_NAME [1]=output\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_LIST output\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN output.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT export -f output\n" "Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> output\n" "Thu 10 Oct 2013 11:50:04 PM CDT =========================> [2] | output\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_NAME [2]=random\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_LIST camel|lower|random|upper\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Random\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Random/Modules\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Random/Manuals\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Random/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Random/Configs\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Random/random.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN random.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Random/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT export -f random\n" "Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> random\n" "H\n" "Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random\n" "H\n" "Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random\n" "l\n" "Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random\n" "l\n" "Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random\n" "H\n" "Thu 10 Oct 2013 11:50:04 PM CDT <------------------------- random\n" "Thu 10 Oct 2013 11:50:04 PM CDT unset -f random\n" "Thu 10 Oct 2013 11:50:04 PM CDT <========================= [2] | output\n" "Thu 10 Oct 2013 11:50:04 PM CDT <------------------------- output\n" "Thu 10 Oct 2013 11:50:05 PM CDT unset -f output\n" "Thu 10 Oct 2013 11:50:05 PM CDT <========================= [1] | hello\n" "Thu 10 Oct 2013 11:50:05 PM CDT <------------------------- hello\n" "Thu 10 Oct 2013 11:50:05 PM CDT unset -f hello\n" "Thu 10 Oct 2013 11:50:05 PM CDT unset -f hello_getOptions\n" "Thu 10 Oct 2013 11:50:05 PM CDT <========================= [0] | main" msgstr "" "Thu 10 Oct 2013 11:50:03 PM CDT =========================> [0] | main\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_BASEDIR Automation/Modules\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_NAME [0]=hello\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_TYPE parent\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_ARGUMENT --random --greeting=Hello\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN hello.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT export -f hello\n" "Thu 10 Oct 2013 11:50:04 PM CDT export -f hello_getOptions\n" "Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> hello --random --greeting=Hello\n" "Thu 10 Oct 2013 11:50:04 PM CDT =========================> [1] | hello\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_NAME [1]=output\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_LIST output\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN output.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT export -f output\n" "Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> output\n" "Thu 10 Oct 2013 11:50:04 PM CDT =========================> [2] | output\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_NAME [2]=random\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_TYPE child\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_ARGUMENT\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_LIST camel|lower|random|upper\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Random\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Random/Modules\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Random/Manuals\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Random/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Random/Configs\n" "Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Random/random.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN random.sh\n" "Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Random/Locales\n" "Thu 10 Oct 2013 11:50:04 PM CDT export -f random\n" "Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> random\n" "H\n" "Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random\n" "H\n" "Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random\n" "l\n" "Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random\n" "l\n" "Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random\n" "H\n" "Thu 10 Oct 2013 11:50:04 PM CDT <------------------------- random\n" "Thu 10 Oct 2013 11:50:04 PM CDT unset -f random\n" "Thu 10 Oct 2013 11:50:04 PM CDT <========================= [2] | output\n" "Thu 10 Oct 2013 11:50:04 PM CDT <------------------------- output\n" "Thu 10 Oct 2013 11:50:05 PM CDT unset -f output\n" "Thu 10 Oct 2013 11:50:05 PM CDT <========================= [1] | hello\n" "Thu 10 Oct 2013 11:50:05 PM CDT <------------------------- hello\n" "Thu 10 Oct 2013 11:50:05 PM CDT unset -f hello\n" "Thu 10 Oct 2013 11:50:05 PM CDT unset -f hello_getOptions\n" "Thu 10 Oct 2013 11:50:05 PM CDT <========================= [0] | main" msgid "" "Recursive execution of modules occurs only when the module you are " "executing is considered sibling of the last module executed in the " "chain of executed modules and they both have the same name. The " "fact that no variable name is printed out in means that they were not created. The arrows " "change from -> to ~>, " "means that module's related functions weren't exported for the new " "module execution either. It also means that the initialization " "script is reusing both related functions and variables from the " "last module environment in the chain of executed modules. In this " "case the random module." msgstr "" "Recursive execution of modules occurs only when the module you are " "executing is considered sibling of the last module executed in the " "chain of executed modules and they both have the same name. The " "fact that no variable name is printed out in means that they were not created. The arrows " "change from -> to ~>, " "means that module's related functions weren't exported for the new " "module execution either. It also means that the initialization " "script is reusing both related functions and variables from the " "last module environment in the chain of executed modules. In this " "case the random module." msgid "" "This section covered the resources you can use to optimize module " "environments inside centos-art.sh script. The next section summarizes the base files and " "directories you might find inside one module environment." msgstr "" "This section covered the resources you can use to optimize module " "environments inside centos-art.sh script. The next section summarizes the base files and " "directories you might find inside one module environment." msgid "Module Structure" msgstr "Module Structure" msgid "" "The module structure takes place at the root location of centos-art.sh script, specifically, in a " "directory named Modules. The Modules directory at centos-art.sh root location is the highest level which you can store " "modules in. Modules stored in this location are known as parent " "modules. Parent modules can optimize their structure by using " "related functions, child modules, sibling modules and recursive " "modules. Basically, all these types of modules share the same " "structure. They all have function files and, optionally, module " "related stuff like locales, documentation, configuration and " "dependent modules. See ." msgstr "" "The module structure takes place at the root location of centos-art.sh script, specifically, in a " "directory named Modules. The Modules directory at centos-art.sh root location is the highest level which you can store " "modules in. Modules stored in this location are known as parent " "modules. Parent modules can optimize their structure by using " "related functions, child modules, sibling modules and recursive " "modules. Basically, all these types of modules share the same " "structure. They all have function files and, optionally, module " "related stuff like locales, documentation, configuration and " "dependent modules. See ." msgid "" "From version 0.7 on, child modules no longer have Locales, Manuals and Configs " "directories inside. Only initialization files, related functions " "and Modules directory are supported inside child " "modules. See Bug 114." msgstr "" "From version 0.7 on, child modules no longer have Locales, Manuals and Configs " "directories inside. Only initialization files, related functions " "and Modules directory are supported inside child " "modules. See Bug 114." msgid "The directory structure of hello module" msgstr "The directory structure of hello module" #, no-wrap msgid "" ".\n" "|-- COPYING\n" "|-- Locales/\n" "|-- Manuals/\n" "|-- Modules/\n" "| `-- Hello/ \n" "| |-- Locales\n" "| | |-- es_ES\n" "| | | |-- LC_MESSAGES\n" "| | | | `-- hello.sh.mo \n" "| | | `-- hello.sh.po\n" "| | `-- hello.sh.pot\n" "| |-- Manuals\n" "| | |-- hello.asciidoc\n" "| | |-- man1\n" "| | | `-- hello.1 \n" "| | `-- render.conf \n" "| |-- Modules\n" "| | `-- Output \n" "| | |-- Modules\n" "| | | |-- Camel\n" "| | | | `-- camel.sh\n" "| | | |-- Lower \n" "| | | | `-- lower.sh \n" "| | | |-- Random\n" "| | | | `-- random.sh\n" "| | | `-- Upper\n" "| | | `-- upper.sh\n" "| | `-- output.sh \n" "| |-- hello.sh \n" "| `-- hello_getOptions.sh \n" "|-- Scripts/\n" "|-- centos-art.conf.sh\n" "`-- centos-art.sh" msgstr "" ".\n" "|-- COPYING\n" "|-- Locales/\n" "|-- Manuals/\n" "|-- Modules/\n" "| `-- Hello/ \n" "| |-- Locales\n" "| | |-- es_ES\n" "| | | |-- LC_MESSAGES\n" "| | | | `-- hello.sh.mo \n" "| | | `-- hello.sh.po\n" "| | `-- hello.sh.pot\n" "| |-- Manuals\n" "| | |-- hello.asciidoc\n" "| | |-- man1\n" "| | | `-- hello.1 \n" "| | `-- render.conf \n" "| |-- Modules\n" "| | `-- Output \n" "| | |-- Modules\n" "| | | |-- Camel\n" "| | | | `-- camel.sh\n" "| | | |-- Lower \n" "| | | | `-- lower.sh \n" "| | | |-- Random\n" "| | | | `-- random.sh\n" "| | | `-- Upper\n" "| | | `-- upper.sh\n" "| | `-- output.sh \n" "| |-- hello.sh \n" "| `-- hello_getOptions.sh \n" "|-- Scripts/\n" "|-- centos-art.conf.sh\n" "`-- centos-art.sh" msgid "" "Child module of centos-art.sh " "script and parent module of output module." msgstr "" "Child module of centos-art.sh " "script and parent module of output module." msgid "" "Spanish translated strings of hello module." msgstr "" "Spanish translated strings of hello module." msgid "" "Manpage shown when you request help of hello module." msgstr "" "Manpage shown when you request help of hello module." msgid "" "Configuration file used to produce the manpage of hello module." msgstr "" "Configuration file used to produce the manpage of hello module." msgid "" "Child module of hello module " "and parent module of camel,lower,random and upper modules." msgstr "" "Child module of hello module " "and parent module of camel,lower,random and upper modules." msgid "" "Child module of output module " "and sibling module of camel,random and upper module." msgstr "" "Child module of output module " "and sibling module of camel,random and upper module." msgid "" "Initialization file of lower " "module." msgstr "" "Initialization file of lower " "module." msgid "" "Initialization file of output " "module." msgstr "" "Initialization file of output " "module." msgid "" "Initialization file of hello " "module." msgstr "" "Initialization file of hello " "module." msgid "" "Function file related to hello " "module." msgstr "" "Function file related to hello " "module." msgid "" " presents a complete " "structure for module environments you can use as reference for " "writing your own modules. It begins with a parent module directory " "named “Hello” which contains an initialization file (“hello.sh”) " "and one related function file (“hello_getOptions.sh”). These files " "work together with a child module named output which in turn has four child modules inside " "named camel,lower,random, and upper. The " "Locales directory contains the required " "information to print hello " "messages in different languages (e.g., it only supports Spanish " "language in our example, but it can be extended to other languages " "as needed). The Manuals directory contains all " "the files required to produce documentation for the hello module (e.g., the information you read " "when provide the —help option " "in the command-line)." msgstr "" " presents a complete " "structure for module environments you can use as reference for " "writing your own modules. It begins with a parent module directory " "named “Hello” which contains an initialization file (“hello.sh”) " "and one related function file (“hello_getOptions.sh”). These files " "work together with a child module named output which in turn has four child modules inside " "named camel,lower,random, and upper. The " "Locales directory contains the required " "information to print hello " "messages in different languages (e.g., it only supports Spanish " "language in our example, but it can be extended to other languages " "as needed). The Manuals directory contains all " "the files required to produce documentation for the hello module (e.g., the information you read " "when provide the —help option " "in the command-line)." msgid "The Function Files" msgstr "The Function Files" msgid "" "The function files are used to create the initialization file of a " "module and the related functions of it. As convention, both " "initialization file and related function files are stored in the " "module's directory, see ." msgstr "" "The function files are used to create the initialization file of a " "module and the related functions of it. As convention, both " "initialization file and related function files are stored in the " "module's directory, see ." msgid "" "At execution time, the definition of related function are exported " "to centos-art.sh execution " "environment before executing the function definition set inside the " "initialization file, so related functions are always available for " "you to use in the initialization file file and other related " "functions as well. This is rather useful when you are refactoring " "your initialization scripts and probably related functions as well." msgstr "" "At execution time, the definition of related function are exported " "to centos-art.sh execution " "environment before executing the function definition set inside the " "initialization file, so related functions are always available for " "you to use in the initialization file file and other related " "functions as well. This is rather useful when you are refactoring " "your initialization scripts and probably related functions as well." msgid "" "As naming convention, related function files are written using the " "module's name, then an underscore (“_”), then a descriptive name " "and, finally, the “.sh” extension. The function " "definition inside the function file also follows this convention " "but excludes the “.sh” extension from name (e." "g., the function file “hello_getOptions.sh” has " "a function definition named “hello_getOptions” " "inside). The centos-art.sh " "script relays in these conventions to export and destroy related " "functions when new module environments are created and destroyed. " "If you create related function files with a pattern different from " "that described here, they will not be executed nor available inside " "the initialization file of the module environment being currently " "executed." msgstr "" "As naming convention, related function files are written using the " "module's name, then an underscore (“_”), then a descriptive name " "and, finally, the “.sh” extension. The function " "definition inside the function file also follows this convention " "but excludes the “.sh” extension from name (e." "g., the function file “hello_getOptions.sh” has " "a function definition named “hello_getOptions” " "inside). The centos-art.sh " "script relays in these conventions to export and destroy related " "functions when new module environments are created and destroyed. " "If you create related function files with a pattern different from " "that described here, they will not be executed nor available inside " "the initialization file of the module environment being currently " "executed." msgid "" "See also: and ." msgstr "" "See also: and ." msgid "The Modules Directory" msgstr "The Modules Directory" msgid "" "This directory contains nested modules (e.g., child modules) and is " "used for extending the current module functionality in a modular " "way. There isn't a visible limitation in the number of " "Modules directory you can nest inside one module " "to achieve certain functionality so, you can create as many levels " "of Modules directories as you need." msgstr "" "This directory contains nested modules (e.g., child modules) and is " "used for extending the current module functionality in a modular " "way. There isn't a visible limitation in the number of " "Modules directory you can nest inside one module " "to achieve certain functionality so, you can create as many levels " "of Modules directories as you need." msgid "The Locales Directory" msgstr "The Locales Directory" msgid "" "This directory contains module-specific localization files. The " "content of this directory is automatically generated by locale module of centos-art.sh script, when you execute it using the " "initialization file as source and the —" "update —sibling options. Once the localization files " "have been created, you need to edit PO files to translate the " "strings from English to your preferred language. If the " "translatable strings inside the module's source files change, you " "need to run the locale module " "again to update the PO files and repeat the localization process " "all over again." msgstr "" "This directory contains module-specific localization files. The " "content of this directory is automatically generated by locale module of centos-art.sh script, when you execute it using the " "initialization file as source and the —" "update —sibling options. Once the localization files " "have been created, you need to edit PO files to translate the " "strings from English to your preferred language. If the " "translatable strings inside the module's source files change, you " "need to run the locale module " "again to update the PO files and repeat the localization process " "all over again." msgid "The Manuals Directory" msgstr "The Manuals Directory" msgid "" "This directory contains module-specific documentation. " "Documentation in this directory is written in asciidoc format and " "produced through the render " "module of centos-art.sh script " "to different formats, including man pages and html." msgstr "" "This directory contains module-specific documentation. " "Documentation in this directory is written in asciidoc format and " "produced through the render " "module of centos-art.sh script " "to different formats, including man pages and html." msgid "The Configs Directory" msgstr "The Configs Directory" msgid "" "This directory contains module-specific configuration. Some modules " "(e.g., “tuneup”) need to store auxiliary files required to achieve " "its main goal (e.g., the “tuneup” module uses sed files to " "transform the top-comment of scripts each time it is executed, the " "sed file itself is stored in this directory). Whenever you need to " "make reference to a file inside this directory, use the " "“TCAR_MODULE_DIR_CONFIGS” variable. This variable provides the " "absolute path of module-related configuration file." msgstr "" "This directory contains module-specific configuration. Some modules " "(e.g., “tuneup”) need to store auxiliary files required to achieve " "its main goal (e.g., the “tuneup” module uses sed files to " "transform the top-comment of scripts each time it is executed, the " "sed file itself is stored in this directory). Whenever you need to " "make reference to a file inside this directory, use the " "“TCAR_MODULE_DIR_CONFIGS” variable. This variable provides the " "absolute path of module-related configuration file." msgid "" "This section has covered the directories and files a module is made " "of inside the centos-art.sh " "script." msgstr "" "This section has covered the directories and files a module is made " "of inside the centos-art.sh " "script." #. Put one translator per line, in the form of NAME , YEAR1, YEAR2. msgid "translator-credits" msgstr "translator-credits"