diff --git a/Scripts/Documentation/Manpages/Locales/en_US/tcar.po b/Scripts/Documentation/Manpages/Locales/en_US/tcar.po new file mode 100644 index 0000000..4daf2be --- /dev/null +++ b/Scripts/Documentation/Manpages/Locales/en_US/tcar.po @@ -0,0 +1,296 @@ +msgid "" +msgstr "" +"Project-Id-Version: centos-art.sh.asciidoc 0.6\n" +"POT-Creation-Date: 2013-11-26 10:20-0500\n" +"PO-Revision-Date: 2013-11-26 10:20-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 "centos-art.sh" +msgstr "centos-art.sh" + +msgid "1" +msgstr "1" + +msgid "The CentOS artwork repository automation tool." +msgstr "The CentOS artwork repository automation tool." + +msgid "" +"centos-art.sh [--help|--version]" +msgstr "" +"centos-art.sh [--help|--version]" + +msgid "" +"Print information about centos-art.sh " +"script itself." +msgstr "" +"Print information about centos-art.sh " +"script itself." + +msgid "" +"centos-art.shMODULE [--help|--version]" +msgstr "" +"centos-art.shMODULE [--help|--version]" + +msgid "" +"Print information about the specified module. See below to see which modules centos-art.sh script supports." +msgstr "" +"Print information about the specified module. See below to see which modules centos-art.sh script supports." + +msgid "Description" +msgstr "Description" + +msgid "" +"centos-art.sh exists to standardize " +"frequent tasks inside the CentOS artwork repository. Inside centos-art.sh script, frequent tasks are organized " +"inside modules." +msgstr "" +"centos-art.sh exists to standardize " +"frequent tasks inside the CentOS artwork repository. Inside centos-art.sh script, frequent tasks are organized " +"inside modules." + +msgid "" +"When you execute the centos-art.sh " +"script in a terminal, it requests you to enter the absolute path of CentOS " +"artwork repository in your workstation. This information is required in " +"order for centos-art.sh to know where " +"the repository directory structure you want to work with is stored in. " +"Later, once centos-art.sh knows where " +"your copy of CentOS artwork repository is stored in, it initializes " +"configuration variables and global functions. At this point, it continues " +"reading the command-line arguments to retrieve the module's name, process " +"common options next to it, store module-specific options and initiates the " +"module's environment by executing the module's initialization script, based " +"on the module's name retrieved from the command-line." +msgstr "" +"When you execute the centos-art.sh " +"script in a terminal, it requests you to enter the absolute path of CentOS " +"artwork repository in your workstation. This information is required in " +"order for centos-art.sh to know where " +"the repository directory structure you want to work with is stored in. " +"Later, once centos-art.sh knows where " +"your copy of CentOS artwork repository is stored in, it initializes " +"configuration variables and global functions. At this point, it continues " +"reading the command-line arguments to retrieve the module's name, process " +"common options next to it, store module-specific options and initiates the " +"module's environment by executing the module's initialization script, based " +"on the module's name retrieved from the command-line." + +msgid "Modules" +msgstr "Modules" + +msgid "" +"The centos-art.sh script supports the " +"following modules:" +msgstr "" +"The centos-art.sh script supports the " +"following modules:" + +msgid "prepare" +msgstr "prepare" + +msgid "" +"Standardize configuration tasks needed by your working copy (e.g., verify " +"whether required packages are installed or not in your workstation, calls " +"render module to produce images and manuals in the correct order). This is " +"the first task you should run in your workstation, just after downloading a " +"fresh working copy of CentOS artwork repository." +msgstr "" +"Standardize configuration tasks needed by your working copy (e.g., verify " +"whether required packages are installed or not in your workstation, calls " +"render module to produce images and manuals in the correct order). This is " +"the first task you should run in your workstation, just after downloading a " +"fresh working copy of CentOS artwork repository." + +msgid "render" +msgstr "render" + +msgid "" +"Standardize the way content is produced inside the repository. This function " +"relies on configuration files to do its work. Whenever you need to produce " +"images, documentation or localized content this is the module you'll need to " +"use." +msgstr "" +"Standardize the way content is produced inside the repository. This function " +"relies on configuration files to do its work. Whenever you need to produce " +"images, documentation or localized content this is the module you'll need to " +"use." + +msgid "locale" +msgstr "locale" + +msgid "" +"Standardize the way translatable strings are retrieved from source files and " +"put into portable objects for you to edit. Portable objects produced by this " +"module are used by render module to " +"produce localized content. Whenever you need to produce the intermediate " +"files holding the translatable strings required to produce localized " +"content, use this module." +msgstr "" +"Standardize the way translatable strings are retrieved from source files and " +"put into portable objects for you to edit. Portable objects produced by this " +"module are used by render module to " +"produce localized content. Whenever you need to produce the intermediate " +"files holding the translatable strings required to produce localized " +"content, use this module." + +msgid "tuneup" +msgstr "tuneup" + +msgid "" +"Standardize maintenance tasks frequently run inside the repository (e.g., " +"reset written by, copyright and license information inside shell script's " +"top-comments; transform probably malformed HTML documents into valid " +"documents, and remove unused tags inside SVG documents.)." +msgstr "" +"Standardize maintenance tasks frequently run inside the repository (e.g., " +"reset written by, copyright and license information inside shell script's " +"top-comments; transform probably malformed HTML documents into valid " +"documents, and remove unused tags inside SVG documents.)." + +msgid "Options" +msgstr "Options" + +msgid "" +"The centos-art.sh script supports the " +"following options:" +msgstr "" +"The centos-art.sh script supports the " +"following options:" + +msgid "--help" +msgstr "--help" + +msgid "Print script documentation." +msgstr "Print script documentation." + +msgid "--version" +msgstr "--version" + +msgid "Print script version." +msgstr "Print script version." + +msgid "--debug" +msgstr "--debug" + +msgid "" +"Run the script in debugging mode. This option is very useful if you want to " +"get a closer look to the way modules are opened and closed inside centos-art.sh script." +msgstr "" +"Run the script in debugging mode. This option is very useful if you want to " +"get a closer look to the way modules are opened and closed inside centos-art.sh script." + +msgid "--quiet" +msgstr "--quiet" + +msgid "" +"Run the script quietly. This option reduces the amount of information the " +"centos-art.sh script prints out when " +"processing source files." +msgstr "" +"Run the script quietly. This option reduces the amount of information the " +"centos-art.sh script prints out when " +"processing source files." + +msgid "--yes" +msgstr "--yes" + +msgid "" +"Run the script in affirmative mode. This is answering “yes” to all “yes or " +"no” questions. This option is useful when you run centos-art.sh with the --quiet option." +msgstr "" +"Run the script in affirmative mode. This is answering “yes” to all “yes or " +"no” questions. This option is useful when you run centos-art.sh with the --quiet option." + +msgid "Exit Status" +msgstr "Exit Status" + +msgid "0 — Exit successfully without errors." +msgstr "0 — Exit successfully without errors." + +msgid "1 — Exit with errors." +msgstr "1 — Exit with errors." + +msgid "Bugs" +msgstr "Bugs" + +msgid "https://centos.org.cu/bugs/" +msgstr "https://centos.org.cu/bugs/" + +msgid "Author" +msgstr "Author" + +msgid "" +"The centos-art.sh script has received " +"contribution from the following people:" +msgstr "" +"The centos-art.sh script has received " +"contribution from the following people:" + +msgid "" +"Alain Reguera Delgado <al@centos." +"org.cu>, 2009-2013" +msgstr "" +"Alain Reguera Delgado <al@centos." +"org.cu>, 2009-2013" + +msgid "Copyright" +msgstr "Copyright" + +msgid "Copyright © 2009-2013 The CentOS Artwork SIG" +msgstr "Copyright © 2009-2013 The CentOS Artwork SIG" + +msgid "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." +msgstr "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." + +msgid "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." +msgstr "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." + +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. +msgid "translator-credits" +msgstr "translator-credits" diff --git a/Scripts/Documentation/Manpages/tcar.asciidoc b/Scripts/Documentation/Manpages/tcar.asciidoc new file mode 100644 index 0000000..0650d8d --- /dev/null +++ b/Scripts/Documentation/Manpages/tcar.asciidoc @@ -0,0 +1,139 @@ +tcar(1) +======= + +Name +---- + +tcar - The CentOS artwork repository automation tool. + +Synopsis +-------- + +*tcar* [*--help*|*--version*]:: + Print information about *tcar* script itself. + +*tcar* *MODULE* [*--help|--version*]:: + Print information about the specified module. See <> + below to see which modules *tcar* script supports. + +Description +----------- + +*tcar* exists to standardize frequent tasks inside the CentOS artwork +repository. Inside *tcar* script, frequent tasks are organized inside +modules. + +When you execute the *tcar* script in a terminal, it requests you to +enter the absolute path of CentOS artwork repository in your +workstation. This information is required in order for *tcar* to know +where the repository directory structure you want to work with is +stored in. Later, once *tcar* knows where your copy of CentOS artwork +repository is stored in, it initializes configuration variables and +global functions. At this point, it continues reading the command-line +arguments to retrieve the module's name, process common options next +to it, store module-specific options and initiates the module's +environment by executing the module's initialization script, based on +the module's name retrieved from the command-line. + +[[modules]] +Modules +------- + +The *tcar* script supports the following modules: + +*prepare*:: + Standardize configuration tasks needed by your working copy (e.g., + verify whether required packages are installed or not in your + workstation, calls render module to produce images and manuals in + the correct order). This is the first task you should run in your + workstation, just after downloading a fresh working copy of CentOS + artwork repository. + +*render*:: + Standardize the way content is produced inside the repository. + This function relies on configuration files to do its work. + Whenever you need to produce images, documentation or localized + content this is the module you'll need to use. + +*locale*:: + Standardize the way translatable strings are retrieved from source + files and put into portable objects for you to edit. Portable + objects produced by this module are used by *render* module to + produce localized content. Whenever you need to produce the + intermediate files holding the translatable strings required to + produce localized content, use this module. + +*tuneup*:: + Standardize maintenance tasks frequently run inside the repository + (e.g., reset written by, copyright and license information inside + shell script's top-comments; transform probably malformed HTML + documents into valid documents, and remove unused tags inside SVG + documents.). + +[[options]] +Options +------- + +The *tcar* script supports the following options: + +*--help*:: + Print script documentation. + +*--version*:: + Print script version. + +*--debug*:: + Run the script in debugging mode. This option is very useful if + you want to get a closer look to the way modules are opened and + closed inside *tcar* script. + +*--quiet*:: + Run the script quietly. This option reduces the amount of + information the *tcar* script prints out when processing + source files. + +*--yes*:: + Run the script in affirmative mode. This is answering ``yes'' to + all ``yes or no'' questions. This option is useful when you run + *tcar* with the *--quiet* option. + +[[exit-status]] +Exit Status +----------- + +* 0 -- Exit successfully without errors. +* 1 -- Exit with errors. + +[[bugs]] +Bugs +---- + +* https://centos.org.cu/bugs/[https://centos.org.cu/bugs/] + +Author +------ + +The *tcar* script has received contribution from the following people: + +* Alain Reguera Delgado , 2009-2013 + +Copyright +--------- + +Copyright (C) 2009-2013 The CentOS Artwork SIG + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +// vim: set syntax=asciidoc: diff --git a/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_checkFiles.asciidoc.po b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_checkFiles.asciidoc.po new file mode 100644 index 0000000..585629d --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_checkFiles.asciidoc.po @@ -0,0 +1,296 @@ +msgid "" +msgstr "" +"Project-Id-Version: tcar_checkFiles.sh.asciidoc 0.6\n" +"POT-Creation-Date: 2013-11-26 10:20-0500\n" +"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_checkfiles" +msgstr "tcar_checkfiles" + +msgid "1" +msgstr "1" + +msgid "tcar_checkFiles" +msgstr "tcar_checkFiles" + +msgid "Standardize constructions for file verifications." +msgstr "Standardize constructions for file verifications." + +msgid "cli_checkFiles [-d|-e|-f|-h|-x] LOCATION" +msgstr "cli_checkFiles [-d|-e|-f|-h|-x] LOCATION" + +msgid "Description" +msgstr "Description" + +msgid "" +"The cli_checkFiles exists to answer " +"basic questions like “Is LOCATION is a regular file?” and " +"“Is LOCATION a directory?”. The answer to such questions " +"affects the script execution flow in the following way: when the answer " +"positive (e.g., LOCATION is a regular file), the script " +"passes the test silently and continues its execution. When the answer is " +"negative(e.g., LOCATION is not a regular file), the " +"script finishes its execution immediately with an error message." +msgstr "" +"The cli_checkFiles exists to answer " +"basic questions like “Is LOCATION is a regular file?” and " +"“Is LOCATION a directory?”. The answer to such questions " +"affects the script execution flow in the following way: when the answer " +"positive (e.g., LOCATION is a regular file), the script " +"passes the test silently and continues its execution. When the answer is " +"negative(e.g., LOCATION is not a regular file), the " +"script finishes its execution immediately with an error message." + +msgid "" +"The cli_checkFiles function is exported " +"to centos-art.sh script environment in " +"the very beginning of its execution and will be available all along its " +"execution lifetime. You can use this function inside common and specific " +"functions whenever you need to verify files inside the The CentOS Artwork " +"Repository." +msgstr "" +"The cli_checkFiles function is exported " +"to centos-art.sh script environment in " +"the very beginning of its execution and will be available all along its " +"execution lifetime. You can use this function inside common and specific " +"functions whenever you need to verify files inside the The CentOS Artwork " +"Repository." + +msgid "" +"The cli_checkFiles function is " +"available inside the centos-art.sh " +"script only as part of its execution environment. This function is exported " +"to centos-art.sh script just after " +"executing the script from the command-line and will be available all along " +"the script lifetime. So, you can use this function both in common and " +"specific functionalities of centos-art.sh script." +msgstr "" +"The cli_checkFiles function is " +"available inside the centos-art.sh " +"script only as part of its execution environment. This function is exported " +"to centos-art.sh script just after " +"executing the script from the command-line and will be available all along " +"the script lifetime. So, you can use this function both in common and " +"specific functionalities of centos-art.sh script." + +msgid "" +"The cli_checkFiles function doesn't " +"create subsequent execution environments." +msgstr "" +"The cli_checkFiles function doesn't " +"create subsequent execution environments." + +msgid "Usage" +msgstr "Usage" + +msgid "" +"Use the cli_checkFiles function inside " +"centos-art.sh script whenever you need " +"to control the script execution flow based on file type (e.g., regular " +"files, directories, links, etc.) verifications." +msgstr "" +"Use the cli_checkFiles function inside " +"centos-art.sh script whenever you need " +"to control the script execution flow based on file type (e.g., regular " +"files, directories, links, etc.) verifications." + +msgid "Options" +msgstr "Options" + +msgid "" +"The cli_checkFiles function accepts the " +"following options:" +msgstr "" +"The cli_checkFiles function accepts the " +"following options:" + +msgid "-d" +msgstr "-d" + +msgid "" +"Verifies whether LOCATION exists and is a directory. If " +"it doesn't exists or isn't a directory, an error message is printed and the " +"script finishes its execution. Otherwise, if it exists and is a directory, " +"the script continues its execution normally." +msgstr "" +"Verifies whether LOCATION exists and is a directory. If " +"it doesn't exists or isn't a directory, an error message is printed and the " +"script finishes its execution. Otherwise, if it exists and is a directory, " +"the script continues its execution normally." + +msgid "-e" +msgstr "-e" + +msgid "" +"Verifies whether LOCATION exists or not. If it doesn't " +"exist, an error message is printed and the script finishes its execution. " +"Otherwise, if it does exists, the script continues its execution normally." +msgstr "" +"Verifies whether LOCATION exists or not. If it doesn't " +"exist, an error message is printed and the script finishes its execution. " +"Otherwise, if it does exists, the script continues its execution normally." + +msgid "-f" +msgstr "-f" + +msgid "" +"Verifies whether LOCATION exists and is a regular file. " +"If it doesn't exists or isn't a regular file, an error message is printed " +"and the script finishes its execution. Otherwise, if it exists and is a " +"regular file, the script continues its execution normally." +msgstr "" +"Verifies whether LOCATION exists and is a regular file. " +"If it doesn't exists or isn't a regular file, an error message is printed " +"and the script finishes its execution. Otherwise, if it exists and is a " +"regular file, the script continues its execution normally." + +msgid "-h" +msgstr "-h" + +msgid "" +"Verifies whether LOCATION exists and is a symbolic link. " +"If it doesn't exists or isn't a symbolic link, an error message is printed " +"and the script finishes its execution immediately. Otherwise, if it does " +"exist and is a symbolic link, the script continue its execution normally." +msgstr "" +"Verifies whether LOCATION exists and is a symbolic link. " +"If it doesn't exists or isn't a symbolic link, an error message is printed " +"and the script finishes its execution immediately. Otherwise, if it does " +"exist and is a symbolic link, the script continue its execution normally." + +msgid "-x" +msgstr "-x" + +msgid "" +"Verifies whether LOCATION exists and execution permission " +"is granted. If it doesn't exist or hasn't execution permission, the script " +"finishes its execution immediately. Otherwise, if it exists and has " +"execution permissions, the script continues its execution normally." +msgstr "" +"Verifies whether LOCATION exists and execution permission " +"is granted. If it doesn't exist or hasn't execution permission, the script " +"finishes its execution immediately. Otherwise, if it exists and has " +"execution permissions, the script continues its execution normally." + +msgid "" +"The value of the LOCATION argument must be an absolute " +"path to the file you want to verify. If such file doesn't exists in any " +"supported form, the script finishes its execution with an error message." +msgstr "" +"The value of the LOCATION argument must be an absolute " +"path to the file you want to verify. If such file doesn't exists in any " +"supported form, the script finishes its execution with an error message." + +msgid "Examples" +msgstr "Examples" + +msgid "" +"The following example was taken from centos-art." +"sh script initialization phase. Notice the position of cli_checkFiles function inside the loop. If some " +"of the function files we need to export doesn't have execution rights, " +"cli_checkFiles will finish the script " +"execution immediately with an error message." +msgstr "" +"The following example was taken from centos-art." +"sh script initialization phase. Notice the position of cli_checkFiles function inside the loop. If some " +"of the function files we need to export doesn't have execution rights, " +"cli_checkFiles will finish the script " +"execution immediately with an error message." + +#, no-wrap +msgid "" +"for FUNCFILE in ${FUNCFILES};do\n" +"\n" +" # Verify the execution rights for function file.\n" +" cli_checkFiles -x ${FUNCFILE}\n" +"\n" +" # Initialize the function file.\n" +" . ${FUNCFILE}\n" +"\n" +" # Export the function names inside the file to current shell\n" +" # script environment.\n" +" export -f $(egrep \"${PATTERN}\" ${FUNCFILE} | gawk '{ print $2 }')\n" +"\n" +"done" +msgstr "" +"for FUNCFILE in ${FUNCFILES};do\n" +"\n" +" # Verify the execution rights for function file.\n" +" cli_checkFiles -x ${FUNCFILE}\n" +"\n" +" # Initialize the function file.\n" +" . ${FUNCFILE}\n" +"\n" +" # Export the function names inside the file to current shell\n" +" # script environment.\n" +" export -f $(egrep \"${PATTERN}\" ${FUNCFILE} | gawk '{ print $2 }')\n" +"\n" +"done" + +msgid "Bugs" +msgstr "Bugs" + +msgid "See https://centos.org.cu/bugs/" +msgstr "See https://centos.org.cu/bugs/" + +msgid "Authors" +msgstr "Authors" + +msgid "" +"The tcar_checkFiles function has " +"received contributions from the following people:" +msgstr "" +"The tcar_checkFiles function has " +"received contributions from the following people:" + +msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" +msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" + +msgid "License" +msgstr "License" + +msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" +msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" + +msgid "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." +msgstr "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." + +msgid "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." +msgstr "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." + +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. +msgid "translator-credits" +msgstr "translator-credits" diff --git a/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_checkRepoDirSource.asciidoc.po b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_checkRepoDirSource.asciidoc.po new file mode 100644 index 0000000..3e3f609 --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_checkRepoDirSource.asciidoc.po @@ -0,0 +1,125 @@ +msgid "" +msgstr "" +"Project-Id-Version: tcar_checkRepoDirSource.sh.asciidoc 0.6\n" +"POT-Creation-Date: 2013-11-26 10:20-0500\n" +"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_checkrepodirsource.sh" +msgstr "tcar_checkrepodirsource.sh" + +msgid "1" +msgstr "1" + +msgid "tcar_checkRepoDirSource" +msgstr "tcar_checkRepoDirSource" + +msgid "Standardize the working copy's absolute path construction." +msgstr "Standardize the working copy's absolute path construction." + +msgid "tcar_checkRepoDirSource \"LOCATION\"" +msgstr "tcar_checkRepoDirSource \"LOCATION\"" + +msgid "Description" +msgstr "Description" + +msgid "" +"The tcar_checkRepoDirSource function " +"standardizes the path construction to directories inside it the working " +"copy, using absolute paths. This function transforms relative paths passed " +"as non-option arguments to centos-art.sh script command-line into absolute paths inside the working copy " +"and verifies whether they really exist as directories inside the working " +"copy or not. If the path provided doesn't exist as directory inside the " +"working copy, the script will finish its execution immediately with an error " +"message. Otherwise, if the directory exists, the variable " +"TCAR_ARGUMENTS is redefined with the related absolute " +"path for further use." +msgstr "" +"The tcar_checkRepoDirSource function " +"standardizes the path construction to directories inside it the working " +"copy, using absolute paths. This function transforms relative paths passed " +"as non-option arguments to centos-art.sh script command-line into absolute paths inside the working copy " +"and verifies whether they really exist as directories inside the working " +"copy or not. If the path provided doesn't exist as directory inside the " +"working copy, the script will finish its execution immediately with an error " +"message. Otherwise, if the directory exists, the variable " +"TCAR_ARGUMENTS is redefined with the related absolute " +"path for further use." + +msgid "" +"Use the tcar_checkRepoDirSource " +"function whenever you need to be sure that non-option arguments passed to " +"centos-art.sh script command-line will " +"always point to directories inside the working copy." +msgstr "" +"Use the tcar_checkRepoDirSource " +"function whenever you need to be sure that non-option arguments passed to " +"centos-art.sh script command-line will " +"always point to directories inside the working copy." + +msgid "Bugs" +msgstr "Bugs" + +msgid "See https://centos.org.cu/bugs/" +msgstr "See https://centos.org.cu/bugs/" + +msgid "Authors" +msgstr "Authors" + +msgid "" +"The tcar_checkRepoDirSource function " +"has received contributions from the following people:" +msgstr "" +"The tcar_checkRepoDirSource function " +"has received contributions from the following people:" + +msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" +msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" + +msgid "License" +msgstr "License" + +msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" +msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" + +msgid "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." +msgstr "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." + +msgid "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." +msgstr "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." + +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. +msgid "translator-credits" +msgstr "translator-credits" diff --git a/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_getConfigValue.asciidoc.po b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_getConfigValue.asciidoc.po new file mode 100644 index 0000000..442eca5 --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_getConfigValue.asciidoc.po @@ -0,0 +1,156 @@ +msgid "" +msgstr "" +"Project-Id-Version: tcar_getConfigValue.sh.asciidoc 0.6\n" +"POT-Creation-Date: 2013-11-26 10:20-0500\n" +"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_getconfigvalue.sh" +msgstr "tcar_getconfigvalue.sh" + +msgid "1" +msgstr "1" + +msgid "tcar_getConfigValue" +msgstr "tcar_getConfigValue" + +msgid "Standardize options retrieval from configuration files." +msgstr "Standardize options retrieval from configuration files." + +msgid "tcar_getConfigValue FILE SECTION OPTION" +msgstr "tcar_getConfigValue FILE SECTION OPTION" + +msgid "Description" +msgstr "Description" + +msgid "" +"The tcar_getConfigValue function " +"standardizes the way option values are retrieved from configuration files. " +"As convention, tcar_getConfigValue uses " +"the output produced by tcar_getConfigLines as input to retrieve the option values. As convention, in " +"option = \"value\" lines, the values retrieved are always " +"on the right side. The values retrieved are also output without quotation " +"and translation markers already expanded." +msgstr "" +"The tcar_getConfigValue function " +"standardizes the way option values are retrieved from configuration files. " +"As convention, tcar_getConfigValue uses " +"the output produced by tcar_getConfigLines as input to retrieve the option values. As convention, in " +"option = \"value\" lines, the values retrieved are always " +"on the right side. The values retrieved are also output without quotation " +"and translation markers already expanded." + +msgid "" +"The tcar_getConfigValue function " +"accepts the following arguments:" +msgstr "" +"The tcar_getConfigValue function " +"accepts the following arguments:" + +msgid "FILE" +msgstr "FILE" + +msgid "" +"This argument specifies the absolute path to the configuration file you want " +"to retrieve the value from. For example," +msgstr "" +"This argument specifies the absolute path to the configuration file you want " +"to retrieve the value from. For example," + +msgid "SECTION" +msgstr "SECTION" + +msgid "" +"This argument specifies the name of the section related to the configuration " +"line you want to retrieve the value from. For example, “symbols” without " +"brackets." +msgstr "" +"This argument specifies the name of the section related to the configuration " +"line you want to retrieve the value from. For example, “symbols” without " +"brackets." + +msgid "OPTION" +msgstr "OPTION" + +msgid "" +"This argument specifies the name of the option you want to retrieve the " +"value from." +msgstr "" +"This argument specifies the name of the option you want to retrieve the " +"value from." + +msgid "" +"Use the tcar_getConfigValue function " +"whenever you want to retrieve values from configuration files in a " +"controlled way." +msgstr "" +"Use the tcar_getConfigValue function " +"whenever you want to retrieve values from configuration files in a " +"controlled way." + +msgid "Bugs" +msgstr "Bugs" + +msgid "See https://centos.org.cu/bugs/" +msgstr "See https://centos.org.cu/bugs/" + +msgid "Authors" +msgstr "Authors" + +msgid "" +"The tcar_checkFiles function has " +"received contributions from the following people:" +msgstr "" +"The tcar_checkFiles function has " +"received contributions from the following people:" + +msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" +msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" + +msgid "License" +msgstr "License" + +msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" +msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" + +msgid "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." +msgstr "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." + +msgid "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." +msgstr "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." + +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. +msgid "translator-credits" +msgstr "translator-credits" diff --git a/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_getFilesList.asciidoc.po b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_getFilesList.asciidoc.po new file mode 100644 index 0000000..ba5bdfc --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_getFilesList.asciidoc.po @@ -0,0 +1,236 @@ +msgid "" +msgstr "" +"Project-Id-Version: tcar_getFilesList.sh.asciidoc 0.6\n" +"POT-Creation-Date: 2013-11-26 10:20-0500\n" +"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_getfileslist.sh" +msgstr "tcar_getfileslist.sh" + +msgid "1" +msgstr "1" + +msgid "tcar_getFilesList" +msgstr "tcar_getFilesList" + +msgid "Create customized list of files for further processing." +msgstr "Create customized list of files for further processing." + +msgid "" +"tcar_getFilesList [--pattern|--mindepth|--maxdepth|--type|--uid] LOCATION" +msgstr "" +"tcar_getFilesList [--pattern|--mindepth|--maxdepth|--type|--uid] LOCATION" + +msgid "Description" +msgstr "Description" + +msgid "" +"The tcar_getFilesList standardizes the " +"way list of files are built inside the centos-art." +"sh script. This function outputs a sorted and unique list of " +"files based on the options and location provided as argument. This function " +"is an interface to the find command. " +"Don't use find command directly inside " +"the centos-art.sh script. Instead, use the tcar_getFilesList function." +msgstr "" +"The tcar_getFilesList standardizes the " +"way list of files are built inside the centos-art." +"sh script. This function outputs a sorted and unique list of " +"files based on the options and location provided as argument. This function " +"is an interface to the find command. " +"Don't use find command directly inside " +"the centos-art.sh script. Instead, use the tcar_getFilesList function." + +msgid "" +"The LOCATION arguments must be the absolute path to a " +"directory and specifies where the search of files in any form (e.g., " +"directories, links, etc.) will take place in. If LOCATION " +"isn't a directory, the script finishes its execution with an error message." +msgstr "" +"The LOCATION arguments must be the absolute path to a " +"directory and specifies where the search of files in any form (e.g., " +"directories, links, etc.) will take place in. If LOCATION " +"isn't a directory, the script finishes its execution with an error message." + +msgid "" +"The tcar_getFilesList accepts the " +"following options:" +msgstr "" +"The tcar_getFilesList accepts the " +"following options:" + +msgid "--pattern=\"REGEX\"" +msgstr "--pattern=\"REGEX\"" + +msgid "" +"This option specifies a posix-egrep type regular expression as value. This " +"regular expression is applied to path specified in LOCATION argument. Only file paths that match this regular expression inside " +"LOCATION directory will be included in the final list of " +"files. By default, if this option is not provided, the “^/.*[[:" +"alnum:]_/-]$+” regular expression is used." +msgstr "" +"This option specifies a posix-egrep type regular expression as value. This " +"regular expression is applied to path specified in LOCATION argument. Only file paths that match this regular expression inside " +"LOCATION directory will be included in the final list of " +"files. By default, if this option is not provided, the “^/.*[[:" +"alnum:]_/-]$+” regular expression is used." + +msgid "" +"When you use the tcar_getFilesList you " +"don't need to specified the absolute path of files you want to look for. " +"This is something tcar_getFilesList " +"already does for you. When you use this function, the value you pass as " +"regular expression isn't the final regular expression used. Instead, the " +"regular expression you pass is used to build the final regular expression " +"passed to find command. The REGEX." +msgstr "" +"When you use the tcar_getFilesList you " +"don't need to specified the absolute path of files you want to look for. " +"This is something tcar_getFilesList " +"already does for you. When you use this function, the value you pass as " +"regular expression isn't the final regular expression used. Instead, the " +"regular expression you pass is used to build the final regular expression " +"passed to find command. The REGEX." + +msgid "--mindepth=\"NUMBER\"" +msgstr "--mindepth=\"NUMBER\"" + +msgid "" +"This option specifies the minimal NUMBER of levels deep " +"the search should go under the directory LOCATION " +"specified. For example, if you specify --mindepth=" +"\"2\" the search will start two levels deep considering the path " +"provided as section." +msgstr "" +"This option specifies the minimal NUMBER of levels deep " +"the search should go under the directory LOCATION " +"specified. For example, if you specify --mindepth=" +"\"2\" the search will start two levels deep considering the path " +"provided as section." + +msgid "--maxdepth=\"NUMBER\"" +msgstr "--maxdepth=\"NUMBER\"" + +msgid "" +"This option specifies the maximum NUMBER of levels deep " +"the search should go under the directory LOCATION " +"specified. For example, if you specify --maxdepth=" +"\"2\" the search will begin in the very same directory path you " +"provided as LOCATION and stop two levels deep using it as " +"section." +msgstr "" +"This option specifies the maximum NUMBER of levels deep " +"the search should go under the directory LOCATION " +"specified. For example, if you specify --maxdepth=" +"\"2\" the search will begin in the very same directory path you " +"provided as LOCATION and stop two levels deep using it as " +"section." + +msgid "--type=\"STRING\"" +msgstr "--type=\"STRING\"" + +msgid "" +"This option specifies the type of files being searched. This option accepts " +"the same values the find-type option does. However, the following " +"STRING values are the most used inside the script so far:" +msgstr "" +"This option specifies the type of files being searched. This option accepts " +"the same values the find-type option does. However, the following " +"STRING values are the most used inside the script so far:" + +msgid "d &mdash; directory." +msgstr "d &mdash; directory." + +msgid "f &mdash; regular file." +msgstr "f &mdash; regular file." + +msgid "--uid=\"NUMBER\"" +msgstr "--uid=\"NUMBER\"" + +msgid "" +"This option specifies the numeric user id of the files you want to search. " +"Only files that match this numeric user id will be added to the final list " +"of files." +msgstr "" +"This option specifies the numeric user id of the files you want to search. " +"Only files that match this numeric user id will be added to the final list " +"of files." + +msgid "" +"Use the tcar_getFilesList whenever you " +"need to build list of files for further processing." +msgstr "" +"Use the tcar_getFilesList whenever you " +"need to build list of files for further processing." + +msgid "Bugs" +msgstr "Bugs" + +msgid "See https://centos.org.cu/bugs/" +msgstr "See https://centos.org.cu/bugs/" + +msgid "Authors" +msgstr "Authors" + +msgid "" +"The tcar_checkFiles function has " +"received contributions from the following people:" +msgstr "" +"The tcar_checkFiles function has " +"received contributions from the following people:" + +msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" +msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" + +msgid "License" +msgstr "License" + +msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" +msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" + +msgid "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." +msgstr "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." + +msgid "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." +msgstr "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." + +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. +msgid "translator-credits" +msgstr "translator-credits" diff --git a/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_printMessage.asciidoc.po b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_printMessage.asciidoc.po new file mode 100644 index 0000000..4ee9f19 --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_printMessage.asciidoc.po @@ -0,0 +1,437 @@ +msgid "" +msgstr "" +"Project-Id-Version: tcar_printMessage.sh.asciidoc 0.6\n" +"POT-Creation-Date: 2013-11-26 10:20-0500\n" +"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_printmessage.sh" +msgstr "tcar_printmessage.sh" + +msgid "1" +msgstr "1" + +msgid "tcar_printMessage.sh" +msgstr "tcar_printMessage.sh" + +msgid "Print customized messages in standard ways." +msgstr "Print customized messages in standard ways." + +msgid "" +"tcar_printMessage \"MESSAGE\" [--as-separator-line|--as-banner-line|--as-" +"cropping-line|--as-tuningup-line|--as-checking-line|--as-combining-line|--as-" +"creating-line|--as-reading-line|--as-savedas-line|--as-linkto-line|--as-" +"movedto-line|--as-validating-line|--as-template-line|--as-configuration-" +"line|--as-palette-line|--as-reponse-line|--as-request-line|--as-selection-" +"line|--as-error-line|--as-toknowmore-line|--as-yesornorequest-line|--as-" +"notrailingnew-line|--as-stdout-line|--as-stderr-line]" +msgstr "" +"tcar_printMessage \"MESSAGE\" [--as-separator-line|--as-banner-line|--as-" +"cropping-line|--as-tuningup-line|--as-checking-line|--as-combining-line|--as-" +"creating-line|--as-reading-line|--as-savedas-line|--as-linkto-line|--as-" +"movedto-line|--as-validating-line|--as-template-line|--as-configuration-" +"line|--as-palette-line|--as-reponse-line|--as-request-line|--as-selection-" +"line|--as-error-line|--as-toknowmore-line|--as-yesornorequest-line|--as-" +"notrailingnew-line|--as-stdout-line|--as-stderr-line]" + +msgid "Description" +msgstr "Description" + +msgid "" +"The tcar_printMessage function " +"standardizes the way centos-art.sh scirpt prints messages. By default, " +"centos-art.sh script prints all messages to the standard output with the " +"exception of those messages printed with the --as-" +"stderr-line option, which are printed to standard error output " +"instead." +msgstr "" +"The tcar_printMessage function " +"standardizes the way centos-art.sh scirpt prints messages. By default, " +"centos-art.sh script prints all messages to the standard output with the " +"exception of those messages printed with the --as-" +"stderr-line option, which are printed to standard error output " +"instead." + +msgid "" +"The tcar_printMessage function requires " +"two arguments. The first argument specifies the message you want to print " +"and the second argument specifies the format you'll use to print that " +"message. Because this function is so used inside the centos-art.sh script, " +"it is convenient to provide localization to strings passed as " +"MESSAGE using gettext constructions when they aren't paths." +msgstr "" +"The tcar_printMessage function requires " +"two arguments. The first argument specifies the message you want to print " +"and the second argument specifies the format you'll use to print that " +"message. Because this function is so used inside the centos-art.sh script, " +"it is convenient to provide localization to strings passed as " +"MESSAGE using gettext constructions when they aren't paths." + +msgid "Options" +msgstr "Options" + +msgid "" +"The tcar_printMessage function accepts " +"the following format options as second argument:" +msgstr "" +"The tcar_printMessage function accepts " +"the following format options as second argument:" + +msgid "--as-separator-line" +msgstr "--as-separator-line" + +msgid "" +"This format takes the first character passed as MESSAGE " +"and repeats it horizontally to build a separator line. Use this format " +"whenever you need to create a logical separation between different actions." +msgstr "" +"This format takes the first character passed as MESSAGE " +"and repeats it horizontally to build a separator line. Use this format " +"whenever you need to create a logical separation between different actions." + +msgid "--as-banner-line" +msgstr "--as-banner-line" + +msgid "" +"This format takes the string passed as MESSAGE and puts " +"it inside two horizontal separator lines. Use this format whenever you need " +"to print header information for following lines." +msgstr "" +"This format takes the string passed as MESSAGE and puts " +"it inside two horizontal separator lines. Use this format whenever you need " +"to print header information for following lines." + +msgid "--as-cropping-line" +msgstr "--as-cropping-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been cropped." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been cropped." + +msgid "--as-tuningup-line" +msgstr "--as-tuningup-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been tuned-up." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been tuned-up." + +msgid "--as-checking-line" +msgstr "--as-checking-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been checked or verified (e." +"g., through tcar_checkFiles " +"functionality)." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been checked or verified (e." +"g., through tcar_checkFiles " +"functionality)." + +msgid "--as-combining-line" +msgstr "--as-combining-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been combined." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been combined." + +msgid "--as-creating-line" +msgstr "--as-creating-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been created." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been created." + +msgid "--as-reading-line" +msgstr "--as-reading-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been read." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been read." + +msgid "--as-savedas-line" +msgstr "--as-savedas-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been saved." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been saved." + +msgid "--as-linkto-line" +msgstr "--as-linkto-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been linked." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been linked." + +msgid "--as-movedto-line" +msgstr "--as-movedto-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been moved." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been moved." + +msgid "--as-validating-line" +msgstr "--as-validating-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been validated." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file has been validated." + +msgid "--as-template-line" +msgstr "--as-template-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file is a template or design model." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file is a template or design model." + +msgid "--as-configuration-line" +msgstr "--as-configuration-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file is a configuration file." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file is a configuration file." + +msgid "--as-palette-line" +msgstr "--as-palette-line" + +msgid "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file is a palette of colors." +msgstr "" +"This format is for two columns messages where MESSAGE " +"generally refers to a file inside the repository. Use this format whenever " +"you need to imply the fact that certain file is a palette of colors." + +msgid "--as-response-line" +msgstr "--as-response-line" + +msgid "" +"This format adds --> at the beginning of the string " +"passed as MESSAGE. Use this format whenever you need to " +"imply the fact that certain file is considered part of a response. For " +"example, when you need to express that a group of files will take certain " +"action, you can use this option to doing so." +msgstr "" +"This format adds --> at the beginning of the string " +"passed as MESSAGE. Use this format whenever you need to " +"imply the fact that certain file is considered part of a response. For " +"example, when you need to express that a group of files will take certain " +"action, you can use this option to doing so." + +msgid "--as-request-line" +msgstr "--as-request-line" + +msgid "" +"This format prints MESSAGE without trailing new line. Use " +"this format whenever you need to imply a question or yes or no request." +msgstr "" +"This format prints MESSAGE without trailing new line. Use " +"this format whenever you need to imply a question or yes or no request." + +msgid "--as-selection-line" +msgstr "--as-selection-line" + +msgid "" +"This format uses each word in MESSAGE as item of a " +"selection list. Use this format whenever you need to select one of the items " +"provided as MESSAGE." +msgstr "" +"This format uses each word in MESSAGE as item of a " +"selection list. Use this format whenever you need to select one of the items " +"provided as MESSAGE." + +msgid "--as-error-line" +msgstr "--as-error-line" + +msgid "" +"This format prints error messages produced by centos-art.sh script. It uses " +"the caller built-in command to display " +"the line number and the filename where such error was triggered. Later, it " +"prints where to find more information by using the --as-toknowmore-line option." +msgstr "" +"This format prints error messages produced by centos-art.sh script. It uses " +"the caller built-in command to display " +"the line number and the filename where such error was triggered. Later, it " +"prints where to find more information by using the --as-toknowmore-line option." + +msgid "--as-toknowmore-line" +msgstr "--as-toknowmore-line" + +msgid "" +"This format takes a function name as MESSAGE and prints " +"the command you can use to find more information about it. When this option " +"is passed the script finishes its execution immediately. This option is used " +"in combination with --as-error-line to " +"finish the script execution after an error." +msgstr "" +"This format takes a function name as MESSAGE and prints " +"the command you can use to find more information about it. When this option " +"is passed the script finishes its execution immediately. This option is used " +"in combination with --as-error-line to " +"finish the script execution after an error." + +msgid "--as-yesornorequest-line" +msgstr "--as-yesornorequest-line" + +msgid "" +"This format takes a question as MESSAGE and reads a yes " +"or no answer. When answer is negative, the script finishes its execution " +"immediately. When answer is affirmative, the script continues its execution " +"normally." +msgstr "" +"This format takes a question as MESSAGE and reads a yes " +"or no answer. When answer is negative, the script finishes its execution " +"immediately. When answer is affirmative, the script continues its execution " +"normally." + +msgid "--as-notrailingnew-line" +msgstr "--as-notrailingnew-line" + +msgid "Print MESSAGE without any trailing newline." +msgstr "Print MESSAGE without any trailing newline." + +msgid "--as-stdout-line" +msgstr "--as-stdout-line" + +msgid "Print MESSAGE to standard output." +msgstr "Print MESSAGE to standard output." + +msgid "--as-stderr-line" +msgstr "--as-stderr-line" + +msgid "Print MESSAGE to standard error output." +msgstr "Print MESSAGE to standard error output." + +msgid "Examples" +msgstr "Examples" + +msgid "Bugs" +msgstr "Bugs" + +msgid ".." +msgstr ".." + +msgid "See https://centos.org.cu/bugs/" +msgstr "See https://centos.org.cu/bugs/" + +msgid "Authors" +msgstr "Authors" + +msgid "" +"The tcar_printMessage function has " +"received contributions from the following people:" +msgstr "" +"The tcar_printMessage function has " +"received contributions from the following people:" + +msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" +msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" + +msgid "License" +msgstr "License" + +msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" +msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" + +msgid "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." +msgstr "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." + +msgid "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." +msgstr "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." + +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. +msgid "translator-credits" +msgstr "translator-credits" diff --git a/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_setModuleEnvironment.asciidoc.po b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_setModuleEnvironment.asciidoc.po new file mode 100644 index 0000000..286f0dc --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_setModuleEnvironment.asciidoc.po @@ -0,0 +1,216 @@ +msgid "" +msgstr "" +"Project-Id-Version: tcar_setModuleEnvironment.sh.asciidoc 0.6\n" +"POT-Creation-Date: 2013-11-26 10:20-0500\n" +"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_setmoduleenvironment.sh" +msgstr "tcar_setmoduleenvironment.sh" + +msgid "1" +msgstr "1" + +msgid "tcar_setModuleEnvironment.sh" +msgstr "tcar_setModuleEnvironment.sh" + +msgid "Initiate module environments." +msgstr "Initiate module environments." + +msgid "" +"tcar_setModuleEnvironment [-m \"MODULE_NAME\"] [-t \"MODULE_TYPE\"] [-g " +"MODULE_ARGUMENT] …" +msgstr "" +"tcar_setModuleEnvironment [-m \"MODULE_NAME\"] [-t \"MODULE_TYPE\"] [-g " +"MODULE_ARGUMENT] …" + +msgid "Description" +msgstr "Description" + +msgid "Options" +msgstr "Options" + +msgid "" +"The tcar_setModuleEnvironment function " +"accepts the following options:" +msgstr "" +"The tcar_setModuleEnvironment function " +"accepts the following options:" + +msgid "-m" +msgstr "-m" + +msgid "This option specifies the name of the module you want to load." +msgstr "This option specifies the name of the module you want to load." + +msgid "-t" +msgstr "-t" + +msgid "" +"This option specifies the type of the module you want to load. Modules can " +"be one of the following types:" +msgstr "" +"This option specifies the type of the module you want to load. Modules can " +"be one of the following types:" + +msgid "top-module" +msgstr "top-module" + +msgid "" +"This modules are stored in the first level of Modules directory. This type " +"of modules initiate module environments for specific tasks so it can be " +"called from anywhere inside centos-art.sh script." +msgstr "" +"This modules are stored in the first level of Modules directory. This type " +"of modules initiate module environments for specific tasks so it can be " +"called from anywhere inside centos-art.sh script." + +msgid "sub-module" +msgstr "sub-module" + +msgid "" +"This modules are stored from the second-level of Modules directory on. This " +"type of modules can be executed from top-modules, sub-modules, or sib-" +"modules but never the centos-art.sh " +"file itself." +msgstr "" +"This modules are stored from the second-level of Modules directory on. This " +"type of modules can be executed from top-modules, sub-modules, or sib-" +"modules but never the centos-art.sh " +"file itself." + +msgid "sib-module" +msgstr "sib-module" + +msgid "" +"This modules are stored from the second-level of Modules directory on. This " +"type of modules can be executed from sub-modules or sib-modules, but never " +"top-modules or the centos-art.sh file " +"itself." +msgstr "" +"This modules are stored from the second-level of Modules directory on. This " +"type of modules can be executed from sub-modules or sib-modules, but never " +"top-modules or the centos-art.sh file " +"itself." + +msgid "-g" +msgstr "-g" + +msgid "" +"This option specifies the module-specific option you want to pass for " +"processing in the module environment you are about to execute. Generally, " +"module-specific options are passed through centos-" +"art.sh command-line but you may need to pass them internally in " +"some cases (e.g., you are executing a top-module from a sub-module). If you " +"need to pass more than one option, then you need to put the -g option before " +"each option you want to pass." +msgstr "" +"This option specifies the module-specific option you want to pass for " +"processing in the module environment you are about to execute. Generally, " +"module-specific options are passed through centos-" +"art.sh command-line but you may need to pass them internally in " +"some cases (e.g., you are executing a top-module from a sub-module). If you " +"need to pass more than one option, then you need to put the -g option before " +"each option you want to pass." + +msgid "Bugs" +msgstr "Bugs" + +msgid "" +"In the very beginning of tcar_setModuleEnvironment function, it used just non-array " +"variables and it worked fine for top-module and sub-module processing, " +"however when it was needed to do sibling processing, it didn't work as " +"expected. The failure was produced because a wrong variable assignment when " +"tried to set the path of the next module to load. There was not a clean way " +"to “remember” what was the base directory of the parent directory, so it " +"ended up using the last loaded module base directory which made impossible " +"to load a sibling module. The tcar_setModuleEnvironment function as implemented in version " +"0.5 of The CentOS Artwork Repository, fixes this issue replacing non-array " +"variables by array variables which can remember module information." +msgstr "" +"In the very beginning of tcar_setModuleEnvironment function, it used just non-array " +"variables and it worked fine for top-module and sub-module processing, " +"however when it was needed to do sibling processing, it didn't work as " +"expected. The failure was produced because a wrong variable assignment when " +"tried to set the path of the next module to load. There was not a clean way " +"to “remember” what was the base directory of the parent directory, so it " +"ended up using the last loaded module base directory which made impossible " +"to load a sibling module. The tcar_setModuleEnvironment function as implemented in version " +"0.5 of The CentOS Artwork Repository, fixes this issue replacing non-array " +"variables by array variables which can remember module information." + +msgid "" +"See also: https://centos.org.cu/" +"bugs/" +msgstr "" +"See also: https://centos.org.cu/" +"bugs/" + +msgid "Author" +msgstr "Author" + +msgid "" +"The centos-art.sh script has received " +"contribution from the following people:" +msgstr "" +"The centos-art.sh script has received " +"contribution from the following people:" + +msgid "" +"Alain Reguera Delgado <al@centos." +"org.cu>, 2009-2013" +msgstr "" +"Alain Reguera Delgado <al@centos." +"org.cu>, 2009-2013" + +msgid "Copyright" +msgstr "Copyright" + +msgid "Copyright © 2009-2013 The CentOS Artwork SIG" +msgstr "Copyright © 2009-2013 The CentOS Artwork SIG" + +msgid "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." +msgstr "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." + +msgid "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." +msgstr "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." + +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. +msgid "translator-credits" +msgstr "translator-credits" diff --git a/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_setTranslationMarkers.asciidoc.po b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_setTranslationMarkers.asciidoc.po new file mode 100644 index 0000000..adddc15 --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/Locales/en_US/tcar_setTranslationMarkers.asciidoc.po @@ -0,0 +1,445 @@ +msgid "" +msgstr "" +"Project-Id-Version: tcar_setTranslationMarkers.sh.asciidoc 0.6\n" +"POT-Creation-Date: 2013-11-26 10:20-0500\n" +"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_settranslationmarkers" +msgstr "tcar_settranslationmarkers" + +msgid "1" +msgstr "1" + +msgid "tcar_setTranslationMarkers" +msgstr "tcar_setTranslationMarkers" + +msgid "Expands translation markers." +msgstr "Expands translation markers." + +msgid "tcar_setTranslationMarkers \"FILE\"" +msgstr "tcar_setTranslationMarkers \"FILE\"" + +msgid "Description" +msgstr "Description" + +msgid "" +"The cli_setTranslationMarkers " +"standardizes construction of translation markers and their related " +"expansion. As convention, translation markers are set inside source files (e." +"g., DocBook, SVG) and expanded inside temporal instances used to produce " +"final contents. The FILE argument should point to the " +"temporal file where translation markers expansion takes place in." +msgstr "" +"The cli_setTranslationMarkers " +"standardizes construction of translation markers and their related " +"expansion. As convention, translation markers are set inside source files (e." +"g., DocBook, SVG) and expanded inside temporal instances used to produce " +"final contents. The FILE argument should point to the " +"temporal file where translation markers expansion takes place in." + +msgid "" +"Translation markers written in source files must comply the " +"== regular expression pattern. For example, =UNKNOWN_MARKER= is a valid translation marker without any " +"replacement. To prevent centos-art.sh " +"script from expanding translation markers, add a backslash (+) " +"between the first equal sign and the following letter. For example, +=...=+ " +"won't be expanded." +msgstr "" +"Translation markers written in source files must comply the " +"== regular expression pattern. For example, =UNKNOWN_MARKER= is a valid translation marker without any " +"replacement. To prevent centos-art.sh " +"script from expanding translation markers, add a backslash (+) " +"between the first equal sign and the following letter. For example, +=...=+ " +"won't be expanded." + +msgid "" +"The cli_setTranslationMarkers supports " +"the following translation markers:" +msgstr "" +"The cli_setTranslationMarkers supports " +"the following translation markers:" + +msgid "" +"=\\COPYRIGHT_YEAR_LAST=, =\\COPYRIGHT_YEAR=" +msgstr "" +"=\\COPYRIGHT_YEAR_LAST=, =\\COPYRIGHT_YEAR=" + +msgid "" +"These translation markers expand to the last year used in copyright notes. " +"For example, =COPYRIGHT_YEAR_LAST=." +msgstr "" +"These translation markers expand to the last year used in copyright notes. " +"For example, =COPYRIGHT_YEAR_LAST=." + +msgid "" +"=\\COPYRIGHT_YEAR_LIST=, =" +"\\COPYRIGHT_YEARS_LIST=" +msgstr "" +"=\\COPYRIGHT_YEAR_LIST=, =" +"\\COPYRIGHT_YEARS_LIST=" + +msgid "" +"This translation markers expand to the list of years used in copyright " +"notes. For example, =COPYRIGHT_YEARS_LIST=. The first " +"year represents the time we began to work on The CentOS Artwork Repository." +msgstr "" +"This translation markers expand to the list of years used in copyright " +"notes. For example, =COPYRIGHT_YEARS_LIST=. The first " +"year represents the time we began to work on The CentOS Artwork Repository." + +msgid "=\\COPYRIGHT_HOLDER=" +msgstr "=\\COPYRIGHT_HOLDER=" + +msgid "" +"This translation marker expands to the holder used in copyright notes. For " +"example, =COPYRIGHT_HOLDER=." +msgstr "" +"This translation marker expands to the holder used in copyright notes. For " +"example, =COPYRIGHT_HOLDER=." + +msgid "=\\COPYRIGHT_HOLDER_PREDICATE=" +msgstr "=\\COPYRIGHT_HOLDER_PREDICATE=" + +msgid "" +"This translation marker expands both the holder and the predicate used in " +"copyright notes. For example, =COPYRIGHT_HOLDER_PREDICATE=." +msgstr "" +"This translation marker expands both the holder and the predicate used in " +"copyright notes. For example, =COPYRIGHT_HOLDER_PREDICATE=." + +msgid "=\\BRAND=" +msgstr "=\\BRAND=" + +msgid "" +"This translation marker expands to the brand name used on files names and " +"URLs inside The CentOS Artwork Repository. For example, =BRAND=." +msgstr "" +"This translation marker expands to the brand name used on files names and " +"URLs inside The CentOS Artwork Repository. For example, =BRAND=." + +msgid "=\\LICENSE=" +msgstr "=\\LICENSE=" + +msgid "" +"This translation marker expands to the license information used in files " +"created by centos-art.sh script. For " +"example, =LICENSE=." +msgstr "" +"This translation marker expands to the license information used in files " +"created by centos-art.sh script. For " +"example, =LICENSE=." + +msgid "=\\LICENSE_URL=" +msgstr "=\\LICENSE_URL=" + +msgid "" +"This translation marker expands to the license URL used in files created by " +"centos-art.sh script. For example, " +"=LICENSE_URL=." +msgstr "" +"This translation marker expands to the license URL used in files created by " +"centos-art.sh script. For example, " +"=LICENSE_URL=." + +msgid "=\\THEME=" +msgstr "=\\THEME=" + +msgid "" +"This translation marker expands to the theme portion of path you are " +"producing through centos-art.sh script. As consequence, this translation " +"marker should be used in situations where you are producing theme components " +"only. This translation marker expands its value by retrieving the theme part " +"of the path you provide as non-option argument to centos-art.sh script. For example, if you provide the path " +"Identity/Images/Themes/Modern/2/Distro/5, this " +"translation will expand to the Modern/2/ value." +msgstr "" +"This translation marker expands to the theme portion of path you are " +"producing through centos-art.sh script. As consequence, this translation " +"marker should be used in situations where you are producing theme components " +"only. This translation marker expands its value by retrieving the theme part " +"of the path you provide as non-option argument to centos-art.sh script. For example, if you provide the path " +"Identity/Images/Themes/Modern/2/Distro/5, this " +"translation will expand to the Modern/2/ value." + +msgid "" +"In case you need to retrieve the theme name or version separately one " +"another, then you can use the =\\THEMENAME= and =" +"\\THEMERELEASE= translation markers, respectively. When you use " +"these translation markers, forward slashes are removed from result. So, if " +"you provide the path Identity/Images/Themes/Modern/2/Distro/5, =\\THEMENAME= will expand to Modern and =THEMERELEASE= will expand to 2." +msgstr "" +"In case you need to retrieve the theme name or version separately one " +"another, then you can use the =\\THEMENAME= and =" +"\\THEMERELEASE= translation markers, respectively. When you use " +"these translation markers, forward slashes are removed from result. So, if " +"you provide the path Identity/Images/Themes/Modern/2/Distro/5, =\\THEMENAME= will expand to Modern and =THEMERELEASE= will expand to 2." + +msgid "=\\RELEASE=" +msgstr "=\\RELEASE=" + +msgid "" +"This translation marker expands to the current release information of your " +"CentOS distribution. By default this information is retrieved from /" +"etc/redhat-release. In case the option --" +"release be passed, the value specified with it will overwrite the " +"default value and will be this the one used as section for this translation " +"marker to retrieve the release information. So, for example, if you are " +"running a CentOS-5.8 distribution and no --" +"release option is passed to centos-art." +"sh script, this translation marker expands to 5.8. On the other hand, if you are still running a CentOS-5.8 " +"distribution but provide the --release=6.3 option to centos-art.sh " +"script, this translation marker expands to 6.3 instead." +msgstr "" +"This translation marker expands to the current release information of your " +"CentOS distribution. By default this information is retrieved from /" +"etc/redhat-release. In case the option --" +"release be passed, the value specified with it will overwrite the " +"default value and will be this the one used as section for this translation " +"marker to retrieve the release information. So, for example, if you are " +"running a CentOS-5.8 distribution and no --" +"release option is passed to centos-art." +"sh script, this translation marker expands to 5.8. On the other hand, if you are still running a CentOS-5.8 " +"distribution but provide the --release=6.3 option to centos-art.sh " +"script, this translation marker expands to 6.3 instead." + +msgid "" +"In case you need to retrieve minor and major release numbers separately one " +"another, then you can use the =\\MINOR_RELEASE= and " +"=\\MAJOR_RELEASE= translation makers, respectively." +msgstr "" +"In case you need to retrieve minor and major release numbers separately one " +"another, then you can use the =\\MINOR_RELEASE= and " +"=\\MAJOR_RELEASE= translation makers, respectively." + +msgid "=\\ARCH=" +msgstr "=\\ARCH=" + +msgid "" +"This translation marker expands to the current architecture of your CentOS " +"Distribution. By default this information is retrieved from uname -i. In case the option --arch be passed, the value specified with it will overwrite " +"the default value and will be the one used as section. For example, if the " +"uname -i outputs the line <" +"computeroutput>i386</computeroutput>, this translation marker will " +"expand to i386. On the other hand, if you pass the " +"--arch=x86_64 option to centos-art.sh script, this translation marker will " +"expand to x86_64 instead." +msgstr "" +"This translation marker expands to the current architecture of your CentOS " +"Distribution. By default this information is retrieved from uname -i. In case the option --arch be passed, the value specified with it will overwrite " +"the default value and will be the one used as section. For example, if the " +"uname -i outputs the line <" +"computeroutput>i386</computeroutput>, this translation marker will " +"expand to i386. On the other hand, if you pass the " +"--arch=x86_64 option to centos-art.sh script, this translation marker will " +"expand to x86_64 instead." + +msgid "=\\URL=" +msgstr "=\\URL=" + +msgid "" +"This translation marker expands to the URL which points to The CentOS " +"Project home page. For example, =URL=. In case you are " +"using the centos-art.sh script in a different locale but English " +"(en_US.UTF-8), this translation marker expands as usual " +"but with the language information appended to the end of the string. For " +"example, if you are executing the centos-art.shscript for Spanish locale (e." +"g., es_ES.UTF-8), this translation marker expands to " +"=URL=es/." +msgstr "" +"This translation marker expands to the URL which points to The CentOS " +"Project home page. For example, =URL=. In case you are " +"using the centos-art.sh script in a different locale but English " +"(en_US.UTF-8), this translation marker expands as usual " +"but with the language information appended to the end of the string. For " +"example, if you are executing the centos-art.shscript for Spanish locale (e." +"g., es_ES.UTF-8), this translation marker expands to " +"=URL=es/." + +msgid "" +"In case you need to expand other URL related to The CentOS Project domain, " +"use translation markers described in . Likewise =\\URL=, translation markers described in does append the current " +"language information to the end of the URL string based on the locale " +"information you are currently executing the centos-" +"art.sh script." +msgstr "" +"In case you need to expand other URL related to The CentOS Project domain, " +"use translation markers described in . Likewise =\\URL=, translation markers described in does append the current " +"language information to the end of the URL string based on the locale " +"information you are currently executing the centos-" +"art.sh script." + +msgid "URL-related translation markers" +msgstr "URL-related translation markers" + +msgid "-------------------`----------------- Translation Marker Expands To" +msgstr "-------------------`----------------- Translation Marker Expands To" + +#, no-wrap +msgid "" +"=\\URL_WIKI= =URL_WIKI=\n" +"=\\URL_LISTS= =URL_LISTS=\n" +"=\\URL_FORUMS= =URL_FORUMS=\n" +"=\\URL_MIRRORS= =URL_MIRRORS=\n" +"=\\URL_DOCS= =URL_DOCS=\n" +"=\\URL_PROJECTS= =URL_PROJECTS=\n" +"=\\URL_SVN= =URL_SVN=\n" +"=\\URL_TRAC= =URL_TRAC=\n" +"=\\URL_PLANET= =URL_PLANET=" +msgstr "" +"=\\URL_WIKI= =URL_WIKI=\n" +"=\\URL_LISTS= =URL_LISTS=\n" +"=\\URL_FORUMS= =URL_FORUMS=\n" +"=\\URL_MIRRORS= =URL_MIRRORS=\n" +"=\\URL_DOCS= =URL_DOCS=\n" +"=\\URL_PROJECTS= =URL_PROJECTS=\n" +"=\\URL_SVN= =URL_SVN=\n" +"=\\URL_TRAC= =URL_TRAC=\n" +"=\\URL_PLANET= =URL_PLANET=" + +msgid "=\\MAIL_DOCS=" +msgstr "=\\MAIL_DOCS=" + +msgid "" +"This translation marker expands to CentOS documentation mailing list " +"address. For example, =MAIL_DOCS=." +msgstr "" +"This translation marker expands to CentOS documentation mailing list " +"address. For example, =MAIL_DOCS=." + +msgid "=\\LOCALE=" +msgstr "=\\LOCALE=" + +msgid "" +"This translation marker expands to the current locale information used by " +"centos-art.sh script. This value is " +"retrieved from the <envar>LANG</envar> environment variable and " +"should look like =LOCALE=. In case you need to retrieve " +"the language and country part separately one another, you can use the " +"=\\LOCALE_LL= and =\\LOCALE_CC=, " +"respectively." +msgstr "" +"This translation marker expands to the current locale information used by " +"centos-art.sh script. This value is " +"retrieved from the <envar>LANG</envar> environment variable and " +"should look like =LOCALE=. In case you need to retrieve " +"the language and country part separately one another, you can use the " +"=\\LOCALE_LL= and =\\LOCALE_CC=, " +"respectively." + +msgid "=\\REPO_TLDIR=" +msgstr "=\\REPO_TLDIR=" + +msgid "" +"This translation marker expands to the absolute path to <filename class=" +"\"directory\"> directory inside your workstation. For example, /home/al/Projects/CentOS/artwork/trunk+." +msgstr "" +"This translation marker expands to the absolute path to <filename class=" +"\"directory\"> directory inside your workstation. For example, /home/al/Projects/CentOS/artwork/trunk+." + +msgid "=\\REPO_HOME=, =\\TCAR_WORKDIR=" +msgstr "=\\REPO_HOME=, =\\TCAR_WORKDIR=" + +msgid "" +"This translation marker expands to the absolute path of your working copy. " +"For example, /home/al/Projects/CentOS/artwork." +msgstr "" +"This translation marker expands to the absolute path of your working copy. " +"For example, /home/al/Projects/CentOS/artwork." + +msgid "Bugs" +msgstr "Bugs" + +msgid "See https://centos.org.cu/bugs/" +msgstr "See https://centos.org.cu/bugs/" + +msgid "Authors" +msgstr "Authors" + +msgid "" +"The tcar_setTranslationMarkers function " +"has received contributions from the following people:" +msgstr "" +"The tcar_setTranslationMarkers function " +"has received contributions from the following people:" + +msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" +msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" + +msgid "License" +msgstr "License" + +msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" +msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" + +msgid "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." +msgstr "" +"This program is free software; you can redistribute it and/or modify it " +"under the terms of the GNU General Public License as published by the Free " +"Software Foundation; either version 2 of the License, or (at your option) " +"any later version." + +msgid "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." +msgstr "" +"This program is distributed in the hope that it will be useful, but WITHOUT " +"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " +"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " +"more details." + +msgid "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." +msgstr "" +"You should have received a copy of the GNU General Public License along with " +"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " +"Ave, Cambridge, MA 02139, USA." + +#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. +msgid "translator-credits" +msgstr "translator-credits" diff --git a/Scripts/Documentation/Reference/Tcar/tcar_checkFiles.asciidoc b/Scripts/Documentation/Reference/Tcar/tcar_checkFiles.asciidoc new file mode 100644 index 0000000..7a0de6e --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/tcar_checkFiles.asciidoc @@ -0,0 +1,135 @@ +tcar_checkFiles(1) +================== + +== Name + +tcar_checkFiles - Standardize constructions for file verifications. + +== Synopsis + +*cli_checkFiles [-d|-e|-f|-h|-x] LOCATION* + +== Description + +The *cli_checkFiles* exists to answer basic questions like ``Is ++LOCATION+ is a regular file?'' and ``Is +LOCATION+ a directory?''. +The answer to such questions affects the script execution flow in the +following way: when the answer positive (e.g., +LOCATION+ is a regular +file), the script passes the test silently and continues its +execution. When the answer is negative(e.g., +LOCATION+ is not a +regular file), the script finishes its execution immediately with an +error message. + +The *cli_checkFiles* function is exported to *centos-art.sh* script +environment in the very beginning of its execution and will be +available all along its execution lifetime. You can use this function +inside common and specific functions whenever you need to verify files +inside the The CentOS Artwork Repository. + +The *cli_checkFiles* function is available inside the *centos-art.sh* +script only as part of its execution environment. This function is +exported to *centos-art.sh* script just after executing the script +from the command-line and will be available all along the script +lifetime. So, you can use this function both in common and specific +functionalities of centos-art.sh script. + +The *cli_checkFiles* function doesn't create +subsequent execution environments. + +== Usage + +Use the *cli_checkFiles* function inside *centos-art.sh* script +whenever you need to control the script execution flow based on file +type (e.g., regular files, directories, links, etc.) verifications. + +== Options + +The *cli_checkFiles* function accepts the following options: + +-d:: + Verifies whether +LOCATION+ exists and is a directory. If it + doesn't exists or isn't a directory, an error message is printed + and the script finishes its execution. Otherwise, if it exists + and is a directory, the script continues its execution normally. +-e:: + Verifies whether +LOCATION+ exists or not. If it doesn't exist, an + error message is printed and the script finishes its execution. + Otherwise, if it does exists, the script continues its execution + normally. +-f:: + Verifies whether +LOCATION+ exists and is a regular file. If it + doesn't exists or isn't a regular file, an error message is + printed and the script finishes its execution. Otherwise, if it + exists and is a regular file, the script continues its execution + normally. +-h:: + Verifies whether +LOCATION+ exists and is a symbolic link. If it + doesn't exists or isn't a symbolic link, an error message is + printed and the script finishes its execution immediately. + Otherwise, if it does exist and is a symbolic link, the script + continue its execution normally. +-x:: + Verifies whether +LOCATION+ exists and execution permission is + granted. If it doesn't exist or hasn't execution permission, the + script finishes its execution immediately. Otherwise, if it exists + and has execution permissions, the script continues its execution + normally. + +The value of the +LOCATION+ argument must be an absolute path to the +file you want to verify. If such file doesn't exists in any supported +form, the script finishes its execution with an error message. + +== Examples + +The following example was taken from *centos-art.sh* script +initialization phase. Notice the position of *cli_checkFiles* +function inside the loop. If some of the function files we need to +export doesn't have execution rights, *cli_checkFiles* will finish the +script execution immediately with an error message. + +---------------------------------------------------------------------- +for FUNCFILE in ${FUNCFILES};do + + # Verify the execution rights for function file. + cli_checkFiles -x ${FUNCFILE} + + # Initialize the function file. + . ${FUNCFILE} + + # Export the function names inside the file to current shell + # script environment. + export -f $(egrep "${PATTERN}" ${FUNCFILE} | gawk '{ print $2 }') + +done +---------------------------------------------------------------------- + +== Bugs + +See https://centos.org.cu/bugs/ + +== Authors + +The *tcar_checkFiles* function has received contributions from the +following people: + +- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= + +== License + +Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +// vim: set syntax=asciidoc: diff --git a/Scripts/Documentation/Reference/Tcar/tcar_checkRepoDirSource.asciidoc b/Scripts/Documentation/Reference/Tcar/tcar_checkRepoDirSource.asciidoc new file mode 100644 index 0000000..2d26107 --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/tcar_checkRepoDirSource.asciidoc @@ -0,0 +1,59 @@ +tcar_checkRepoDirSource(1) +========================== + +== Name + +tcar_checkRepoDirSource - Standardize the working copy's absolute path +construction. + +== Synopsis + +tcar_checkRepoDirSource "LOCATION" + +== Description + +The *tcar_checkRepoDirSource* function standardizes the path +construction to directories inside it the working copy, using absolute +paths. This function transforms relative paths passed as non-option +arguments to *centos-art.sh* script command-line into absolute paths +inside the working copy and verifies whether they really exist as +directories inside the working copy or not. If the path provided +doesn't exist as directory inside the working copy, the script will +finish its execution immediately with an error message. Otherwise, if +the directory exists, the variable +TCAR_ARGUMENTS+ is redefined with +the related absolute path for further use. + +Use the *tcar_checkRepoDirSource* function whenever you need to be +sure that non-option arguments passed to *centos-art.sh* script +command-line will always point to directories inside the working copy. + +== Bugs + +See https://centos.org.cu/bugs/ + +== Authors + +The *tcar_checkRepoDirSource* function has received contributions from +the following people: + +- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= + +== License + +Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +// vim: set syntax=asciidoc: diff --git a/Scripts/Documentation/Reference/Tcar/tcar_getConfigValue.asciidoc b/Scripts/Documentation/Reference/Tcar/tcar_getConfigValue.asciidoc new file mode 100644 index 0000000..a596807 --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/tcar_getConfigValue.asciidoc @@ -0,0 +1,72 @@ +tcar_getConfigValue(1) +====================== + +== Name + +tcar_getConfigValue - Standardize options retrieval from configuration +files. + +== Synopsis + +*tcar_getConfigValue FILE SECTION OPTION* + +== Description + +The *tcar_getConfigValue* function standardizes the way option values +are retrieved from configuration files. As convention, +*tcar_getConfigValue* uses the output produced by +*tcar_getConfigLines* as input to retrieve the option values. As +convention, in +option = "value"+ lines, the values retrieved are +always on the right side. The values retrieved are also output without +quotation and translation markers already expanded. + +The *tcar_getConfigValue* function accepts the +following arguments: + +FILE:: + This argument specifies the absolute path to the configuration + file you want to retrieve the value from. For example, + ``+${TCAR_WORKDIR}/Identity/Models/Themes/Default/Distro/5/Anaconda/branding.conf+''. + +SECTION:: + This argument specifies the name of the section related to the + configuration line you want to retrieve the value from. For + example, ``symbols'' without brackets. + +OPTION:: + This argument specifies the name of the option you want to + retrieve the value from. + +Use the *tcar_getConfigValue* function whenever you want to retrieve +values from configuration files in a controlled way. + +== Bugs + +See https://centos.org.cu/bugs/ + +== Authors + +The *tcar_checkFiles* function has received contributions from the +following people: + +- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= + +== License + +Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +// vim: set syntax=asciidoc: diff --git a/Scripts/Documentation/Reference/Tcar/tcar_getFilesList.asciidoc b/Scripts/Documentation/Reference/Tcar/tcar_getFilesList.asciidoc new file mode 100644 index 0000000..c3dbff1 --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/tcar_getFilesList.asciidoc @@ -0,0 +1,107 @@ +tcar_getFilesList(1) +==================== + +== Name + +tcar_getFilesList - Create customized list of files for further +processing. + +== Synopsis + +*tcar_getFilesList [--pattern|--mindepth|--maxdepth|--type|--uid] LOCATION* + +== Description + +The *tcar_getFilesList* standardizes the way list of files are built +inside the *centos-art.sh* script. This function outputs a sorted and +unique list of files based on the options and location provided as +argument. This function is an interface to the *find* command. Don't +use *find* command directly inside the centos-art.sh script. Instead, +use the *tcar_getFilesList* function. + +The +LOCATION+ arguments must be the absolute path to a directory and +specifies where the search of files in any form (e.g., directories, +links, etc.) will take place in. If +LOCATION+ isn't a directory, the +script finishes its execution with an error message. + +The *tcar_getFilesList* accepts the following options: + +--pattern="REGEX":: + This option specifies a posix-egrep type regular expression as + value. This regular expression is applied to path specified in + +LOCATION+ argument. Only file paths that match this regular + expression inside +LOCATION+ directory will be included in the + final list of files. By default, if this option is not provided, + the ``+^/.*[[:alnum:]_/-]+$+'' regular expression + is used. ++ +When you use the *tcar_getFilesList* you don't need to specified the +absolute path of files you want to look for. This is something +*tcar_getFilesList* already does for you. When you use this function, +the value you pass as regular expression isn't the final regular +expression used. Instead, the regular expression you pass is used to +build the final regular expression passed to *find* command. The +final regular expression passed to find is ``+^/.*${PATTERN}$+'', +where +${PATTERN}+ is the value you passed to *--pattern* option as +REGEX. + +--mindepth="NUMBER":: + This option specifies the minimal +NUMBER+ of levels deep the + search should go under the directory +LOCATION+ specified. For + example, if you specify *--mindepth="2"* the search will start two + levels deep considering the path provided as section. + +--maxdepth="NUMBER":: + This option specifies the maximum +NUMBER+ of levels deep the + search should go under the directory +LOCATION+ specified. For + example, if you specify *--maxdepth="2"* the search will begin in + the very same directory path you provided as +LOCATION+ and stop + two levels deep using it as section. + +--type="STRING":: + This option specifies the type of files being searched. This + option accepts the same values the *find* *-type* option does. + However, the following +STRING+ values are the most used inside + the script so far: ++ +- d — directory. +- f — regular file. + +--uid="NUMBER":: + This option specifies the numeric user id of the files you want to + search. Only files that match this numeric user id will be added + to the final list of files. + +Use the *tcar_getFilesList* whenever you need to build list of files +for further processing. + +== Bugs + +See https://centos.org.cu/bugs/ + +== Authors + +The *tcar_checkFiles* function has received contributions from the +following people: + +- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= + +== License + +Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +// vim: set syntax=asciidoc: diff --git a/Scripts/Documentation/Reference/Tcar/tcar_printMessage.asciidoc b/Scripts/Documentation/Reference/Tcar/tcar_printMessage.asciidoc new file mode 100644 index 0000000..5b56bbe --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/tcar_printMessage.asciidoc @@ -0,0 +1,192 @@ +tcar_printMessage(1) +==================== + +== Name + +tcar_printMessage.sh - Print customized messages in standard ways. + +== Synopsis + +*tcar_printMessage "MESSAGE" [--as-separator-line|--as-banner-line|--as-cropping-line|--as-tuningup-line|--as-checking-line|--as-combining-line|--as-creating-line|--as-reading-line|--as-savedas-line|--as-linkto-line|--as-movedto-line|--as-validating-line|--as-template-line|--as-configuration-line|--as-palette-line|--as-reponse-line|--as-request-line|--as-selection-line|--as-error-line|--as-toknowmore-line|--as-yesornorequest-line|--as-notrailingnew-line|--as-stdout-line|--as-stderr-line]* + +== Description + +The *tcar_printMessage* function standardizes the way centos-art.sh +scirpt prints messages. By default, centos-art.sh script prints all +messages to the standard output with the exception of those messages +printed with the *--as-stderr-line* option, which are printed to +standard error output instead. + +The *tcar_printMessage* function requires two arguments. The first +argument specifies the message you want to print and the second +argument specifies the format you'll use to print that message. +Because this function is so used inside the centos-art.sh script, it +is convenient to provide localization to strings passed as +MESSAGE+ +using *gettext* constructions when they aren't paths. + +== Options + +The *tcar_printMessage* function accepts the following format options +as second argument: + +--as-separator-line:: + This format takes the first character passed as +MESSAGE+ and + repeats it horizontally to build a separator line. Use this + format whenever you need to create a logical separation between + different actions. + +--as-banner-line:: + This format takes the string passed as +MESSAGE+ and puts it + inside two horizontal separator lines. Use this format whenever + you need to print header information for following lines. + +--as-cropping-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file has been cropped. + +--as-tuningup-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file has been tuned-up. + +--as-checking-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file has been checked or + verified (e.g., through *tcar_checkFiles* functionality). + +--as-combining-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file has been combined. + +--as-creating-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file has been created. + +--as-reading-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file has been read. + +--as-savedas-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file has been saved. + +--as-linkto-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file has been linked. + +--as-movedto-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file has been moved. + +--as-validating-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file has been validated. + +--as-template-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file is a template or + design model. + +--as-configuration-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file is a configuration + file. + +--as-palette-line:: + This format is for two columns messages where +MESSAGE+ generally + refers to a file inside the repository. Use this format whenever + you need to imply the fact that certain file is a palette of + colors. + +--as-response-line:: + This format adds +-->+ at the beginning of the string passed as + +MESSAGE+. Use this format whenever you need to imply the fact + that certain file is considered part of a response. For example, + when you need to express that a group of files will take certain + action, you can use this option to doing so. + +--as-request-line:: + This format prints +MESSAGE+ without trailing new line. Use this + format whenever you need to imply a question or yes or no request. + +--as-selection-line:: + This format uses each word in +MESSAGE+ as item of a selection + list. Use this format whenever you need to select one of the items + provided as +MESSAGE+. + +--as-error-line:: + This format prints error messages produced by centos-art.sh + script. It uses the *caller* built-in command to display the line + number and the filename where such error was triggered. Later, it + prints where to find more information by using the + *--as-toknowmore-line* option. + +--as-toknowmore-line:: + This format takes a function name as +MESSAGE+ and prints the + command you can use to find more information about it. When this + option is passed the script finishes its execution immediately. + This option is used in combination with *--as-error-line* to + finish the script execution after an error. + +--as-yesornorequest-line:: + This format takes a question as +MESSAGE+ and reads a yes or no + answer. When answer is negative, the script finishes its execution + immediately. When answer is affirmative, the script continues its + execution normally. + +--as-notrailingnew-line:: + Print +MESSAGE+ without any trailing + newline. + +--as-stdout-line:: + Print +MESSAGE+ to standard output. + +--as-stderr-line:: + Print +MESSAGE+ to standard error output. + +== Examples + +... + +== Bugs + +See https://centos.org.cu/bugs/ + +== Authors + +The *tcar_printMessage* function has received contributions from the +following people: + +- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= + +== License + +Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +// vim: set syntax=asciidoc: +// vim: set syntax=asciidoc: diff --git a/Scripts/Documentation/Reference/Tcar/tcar_setModuleEnvironment.asciidoc b/Scripts/Documentation/Reference/Tcar/tcar_setModuleEnvironment.asciidoc new file mode 100644 index 0000000..6a36633 --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/tcar_setModuleEnvironment.asciidoc @@ -0,0 +1,99 @@ +tcar_setModuleEnvironment(1) +============================ + +Name +---- + +tcar_setModuleEnvironment.sh - Initiate module environments. + +Synopsis +-------- + +*tcar_setModuleEnvironment [-m "MODULE_NAME"] [-t "MODULE_TYPE"] [-g MODULE_ARGUMENT] ...* + +Description +----------- + +[[options]] +Options +------- + +The *tcar_setModuleEnvironment* function accepts the following +options: + +-m :: + This option specifies the name of the module you want to load. +-t:: + This option specifies the type of the module you want to load. + Modules can be one of the following types: ++ +top-module;; + This modules are stored in the first level of Modules directory. + This type of modules initiate module environments for specific + tasks so it can be called from anywhere inside *centos-art.sh* + script. +sub-module;; + This modules are stored from the second-level of Modules directory + on. This type of modules can be executed from top-modules, + sub-modules, or sib-modules but never the *centos-art.sh* file + itself. +sib-module;; + This modules are stored from the second-level of Modules directory + on. This type of modules can be executed from sub-modules or + sib-modules, but never top-modules or the *centos-art.sh* file + itself. +-g:: + This option specifies the module-specific option you want to pass + for processing in the module environment you are about to execute. + Generally, module-specific options are passed through + *centos-art.sh* command-line but you may need to pass them + internally in some cases (e.g., you are executing a top-module + from a sub-module). If you need to pass more than one option, then + you need to put the -g option before each option you want to pass. + +Bugs +---- + +In the very beginning of *tcar_setModuleEnvironment* function, it used +just non-array variables and it worked fine for top-module and sub-module +processing, however when it was needed to do sibling processing, it +didn't work as expected. The failure was produced because a wrong +variable assignment when tried to set the path of the next module to +load. There was not a clean way to ``remember'' what was the base +directory of the parent directory, so it ended up using the last +loaded module base directory which made impossible to load a sibling +module. The *tcar_setModuleEnvironment* function as implemented in +version 0.5 of The CentOS Artwork Repository, fixes this issue +replacing non-array variables by array variables which can remember +module information. + +See also: https://centos.org.cu/bugs/[https://centos.org.cu/bugs/] + +Author +------ + +The *centos-art.sh* script has received contribution from the +following people: + +* Alain Reguera Delgado , 2009-2013 + +Copyright +--------- + +Copyright (C) 2009-2013 The CentOS Artwork SIG + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +// vim: set syntax=asciidoc: diff --git a/Scripts/Documentation/Reference/Tcar/tcar_setTranslationMarkers.asciidoc b/Scripts/Documentation/Reference/Tcar/tcar_setTranslationMarkers.asciidoc new file mode 100644 index 0000000..3474df9 --- /dev/null +++ b/Scripts/Documentation/Reference/Tcar/tcar_setTranslationMarkers.asciidoc @@ -0,0 +1,199 @@ +tcar_setTranslationMarkers(1) +============================= + +== Name + +tcar_setTranslationMarkers - Expands translation markers. + +== Synopsis + +*tcar_setTranslationMarkers "FILE"* + +== Description + +The *cli_setTranslationMarkers* standardizes construction of +translation markers and their related expansion. As convention, +translation markers are set inside source files (e.g., DocBook, SVG) +and expanded inside temporal instances used to produce final contents. +The +FILE+ argument should point to the temporal file where +translation markers expansion takes place in. + +Translation markers written in source files must comply the +++=[A-Z_]+=++ regular expression pattern. For example, ++=UNKNOWN_MARKER=+ is a valid translation marker without any +replacement. To prevent *centos-art.sh* script from +expanding translation markers, add a backslash (+\+) between the first +equal sign and the following letter. For example, +=\...=+ won't be +expanded. + +The *cli_setTranslationMarkers* supports the following translation +markers: + ++=\COPYRIGHT_YEAR_LAST=+, +=\COPYRIGHT_YEAR=+:: + These translation markers expand to the last year used in + copyright notes. For example, +=COPYRIGHT_YEAR_LAST=+. + ++=\COPYRIGHT_YEAR_LIST=+, +=\COPYRIGHT_YEARS_LIST=+:: + This translation markers expand to the list of years used in + copyright notes. For example, +=COPYRIGHT_YEARS_LIST=+. The first + year represents the time we began to work on The CentOS Artwork + Repository. + ++=\COPYRIGHT_HOLDER=+:: + This translation marker expands to the holder used in copyright + notes. For example, +=COPYRIGHT_HOLDER=+. + ++=\COPYRIGHT_HOLDER_PREDICATE=+:: + This translation marker expands both the holder and the predicate + used in copyright notes. For example, + +=COPYRIGHT_HOLDER_PREDICATE=+. + ++=\BRAND=+:: + This translation marker expands to the brand name used on files + names and URLs inside The CentOS Artwork Repository. For example, + +=BRAND=+. + ++=\LICENSE=+:: + This translation marker expands to the license information used in + files created by *centos-art.sh* script. For + example, +=LICENSE=+. + ++=\LICENSE_URL=+:: + This translation marker expands to the license URL used in files + created by *centos-art.sh* script. For example, + +=LICENSE_URL=+. + ++=\THEME=+:: + This translation marker expands to the theme portion of path you + are producing through centos-art.sh script. As consequence, this + translation marker should be used in situations where you are + producing theme components only. This translation marker expands + its value by retrieving the theme part of the path you provide as + non-option argument to *centos-art.sh* script. + For example, if you provide the path + +Identity/Images/Themes/Modern/2/Distro/5+, + this translation will expand to the +Modern/2/+ value. ++ +In case you need to retrieve the theme name or version separately one +another, then you can use the +=\THEMENAME=+ and +=\THEMERELEASE=+ +translation markers, respectively. When you use these translation +markers, forward slashes are removed from result. So, if you provide +the path ++Identity/Images/Themes/Modern/2/Distro/5+, ++=\THEMENAME=+ will expand to +Modern+ and +=THEMERELEASE=+ will +expand to +2+. + ++=\RELEASE=+:: + This translation marker expands to the current release information + of your CentOS distribution. By default this information is + retrieved from +/etc/redhat-release+. In case + the option *--release* be passed, the value specified with it will + overwrite the default value and will be this the one used as + section for this translation marker to retrieve the release + information. So, for example, if you are running a CentOS-5.8 + distribution and no *--release* option is passed to + *centos-art.sh* script, this translation marker + expands to +5.8+. On the other hand, if you are still running a + CentOS-5.8 distribution but provide the *--release=6.3* option to + *centos-art.sh* script, this translation marker + expands to +6.3+ instead. ++ +In case you need to retrieve minor and major release numbers +separately one another, then you can use the +=\MINOR_RELEASE=+ and ++=\MAJOR_RELEASE=+ translation makers, respectively. + ++=\ARCH=+:: + This translation marker expands to the current architecture of + your CentOS Distribution. By default this information is retrieved + from *uname -i*. In case the option *--arch* be + passed, the value specified with it will overwrite the default + value and will be the one used as section. For example, if the + *uname -i* outputs the line + i386, this translation marker + will expand to +i386+. On the other hand, if you pass the + *--arch=x86_64* option to *centos-art.sh* script, + this translation marker will expand to +x86_64+ instead. + ++=\URL=+:: This translation marker expands to the URL which points to +The CentOS Project home page. For example, +=URL=+. In case you are +using the centos-art.sh script in a different locale but English +(+en_US.UTF-8+), this translation marker expands as usual but with the +language information appended to the end of the string. For example, +if you are executing the centos-art.shscript for Spanish locale (e.g., ++es_ES.UTF-8+), this translation marker expands to +=URL=es/+. ++ +In case you need to expand other URL related to The CentOS Project +domain, use translation markers described in +<>. Likewise =\URL=, translation +markers described in <> does append +the current language information to the end of the URL string based on +the locale information you are currently executing the *centos-art.sh* +script. + +[[url-related-translation-markers]] +.URL-related translation markers +-------------------`----------------- +Translation Marker Expands To +------------------------------------- +=\URL_WIKI= =URL_WIKI= +=\URL_LISTS= =URL_LISTS= +=\URL_FORUMS= =URL_FORUMS= +=\URL_MIRRORS= =URL_MIRRORS= +=\URL_DOCS= =URL_DOCS= +=\URL_PROJECTS= =URL_PROJECTS= +=\URL_SVN= =URL_SVN= +=\URL_TRAC= =URL_TRAC= +=\URL_PLANET= =URL_PLANET= +------------------------------------- + ++=\MAIL_DOCS=+:: + This translation marker expands to CentOS documentation mailing + list address. For example, +=MAIL_DOCS=+. + ++=\LOCALE=+:: + This translation marker expands to the current locale information + used by *centos-art.sh* script. This value is + retrieved from the LANG environment variable and + should look like +=LOCALE=+. In case you need to retrieve the + language and country part separately one another, you can use the + +=\LOCALE_LL=+ and +=\LOCALE_CC=+, respectively. + ++=\REPO_TLDIR=+:: + This translation marker expands to the absolute path to + directory inside your workstation. For + example, +/home/al/Projects/CentOS/artwork/trunk+. + ++=\REPO_HOME=+, +=\TCAR_WORKDIR=+:: + This translation marker expands to the absolute path of your + working copy. For example, +/home/al/Projects/CentOS/artwork+. + +== Bugs + +See https://centos.org.cu/bugs/ + +== Authors + +The *tcar_setTranslationMarkers* function has received contributions +from the following people: + +- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= + +== License + +Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or (at +your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +// vim: set syntax=asciidoc: diff --git a/Scripts/Documentation/Reference/tcar.asciidoc b/Scripts/Documentation/Reference/tcar.asciidoc new file mode 100644 index 0000000..e920ce1 --- /dev/null +++ b/Scripts/Documentation/Reference/tcar.asciidoc @@ -0,0 +1,15 @@ +////////////////////////////////////////////////////////////////////// +tcar.asciidoc -- This file controls what documentation files related +to common functions are included in the main reference manual as well +as the order in which they are showed up. +////////////////////////////////////////////////////////////////////// + +include::Tcar/tcar_checkFiles.asciidoc[] +include::Tcar/tcar_checkRepoDirSource.asciidoc[] +include::Tcar/tcar_getConfigValue.asciidoc[] +include::Tcar/tcar_getFilesList.asciidoc[] +include::Tcar/tcar_printMessage.asciidoc[] +include::Tcar/tcar_setModuleEnvironment.asciidoc[] +include::Tcar/tcar_setTranslationMarkers.asciidoc[] + +// vim: set syntax=asciidoc: diff --git a/Scripts/Documentation/Understanding_Modules/Locales/en_US/understanding_modules.asciidoc.po b/Scripts/Documentation/Understanding_Modules/Locales/en_US/understanding_modules.asciidoc.po new file mode 100644 index 0000000..8e5cef6 --- /dev/null +++ b/Scripts/Documentation/Understanding_Modules/Locales/en_US/understanding_modules.asciidoc.po @@ -0,0 +1,2127 @@ +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" diff --git a/Scripts/Documentation/Understanding_Modules/render.conf b/Scripts/Documentation/Understanding_Modules/render.conf new file mode 100644 index 0000000..046b3dd --- /dev/null +++ b/Scripts/Documentation/Understanding_Modules/render.conf @@ -0,0 +1,9 @@ +[understanding_modules.html] +render-type = "asciidoc" +render-flow = "article" +render-from = "understanding_modules.asciidoc" +locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/understanding_modules.asciidoc.po" +images-from = "${TCAR_BASEDIR}/Artworks/Icons/Webenv/Final" +styles-from = "${TCAR_BASEDIR}/Artworks/Webenv/Docbook/1.69.1/Css" +formats = "xhtml" +render-page = "single chunks" diff --git a/Scripts/Documentation/Understanding_Modules/understanding_modules.asciidoc b/Scripts/Documentation/Understanding_Modules/understanding_modules.asciidoc new file mode 100644 index 0000000..6b2f156 --- /dev/null +++ b/Scripts/Documentation/Understanding_Modules/understanding_modules.asciidoc @@ -0,0 +1,994 @@ +Understanding Modules +===================== +Alain Reguera Delgado +v0.1, Oct 2013 + +Overview +-------- + +From version 0.5, *centos-art.sh* script implements the idea of +modules to its base design. Modules are a collection of functions +written in Bash that can call themselves 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). + +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 they work. 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. + +[[module-environment]] +Module Environment +------------------ + +When you execute the *centos-art.sh* script you create an execution +environment in which variables and functions are defined. This +execution environment is the higher environment inside *centos-art.sh* +script. It is considered to have a ``global'' scope, so variables and +functions defined inside it are always available for any function +execution made from it. You can control the execution environment of +*centos-art.sh* script through +centos-art.sh+ and ++centos-art.conf.sh+ files. These files don't provide too much +functionality so specific module environments are executed from ++centos-art.sh+ at demand, to extend its functionality. + +Module environments are made of small functions that perform small +tasks and can be further executed in a specific order to produce a +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.'' + +[[parent-modules-environment]] +Parent Modules +~~~~~~~~~~~~~~ + +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. + +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. + +[[debug-parent-modules]] +.Debugging execution of parent modules +====================================================================== +---------------------------------------------------------------------- +Thu 10 Oct 2013 11:53:28 PM CDT =========================> [0] | main +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_BASEDIR Automation/Modules +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_NAME [0]=hello +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_TYPE parent +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_ARGUMENT --greeting=hi +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs +Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh +Thu 10 Oct 2013 11:53:28 PM CDT TEXTDOMAIN hello.sh +Thu 10 Oct 2013 11:53:28 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales +Thu 10 Oct 2013 11:53:28 PM CDT export -f hello +Thu 10 Oct 2013 11:53:28 PM CDT export -f hello_getOptions +Thu 10 Oct 2013 11:53:28 PM CDT -------------------------> hello --greeting=hi +hi +Thu 10 Oct 2013 11:53:28 PM CDT <------------------------- hello +Thu 10 Oct 2013 11:53:28 PM CDT unset -f hello +Thu 10 Oct 2013 11:53:28 PM CDT unset -f hello_getOptions +Thu 10 Oct 2013 11:53:28 PM CDT <========================= [0] | main +---------------------------------------------------------------------- +====================================================================== + +<> 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 +<>. + +Summary +~~~~~~~ + +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. + +[[module-implementation]] +Module Implementation +--------------------- + +The *centos-art.sh* script implements module environments inside the +``+Modules+'' directory, as described in <>. + +[[module-implementation-parent]] +Parent Modules +~~~~~~~~~~~~~~ + +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 <>. + +[[parent-module-layout]] +.Directory layout used by parent modules +====================================================================== +---------------------------------------------------------------------- +. +|-- COPYING <1> +|-- Locales/ <2> +|-- Manuals/ <3> +|-- Modules/ <4> +| `-- Hello/ <5> +| |-- hello.sh <6> +| `-- hello_getOptions.sh <7> +|-- Scripts/ <8> +|-- centos-art.conf.sh <9> +`-- centos-art.sh <10> +---------------------------------------------------------------------- + +<1> Script's copying conditions. +<2> Script's localization files. +<3> Script's documentation files. +<4> Script's modules. Here is where you store parent modules. +<5> Parent directory of module named hello. +<6> Initialization file of module named hello. +<7> Function related to module named hello. +<8> Script's global functions. +<9> Script's configuration file. +<10> Script's initialization file. +====================================================================== + +<> 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 <>. + +[[module-init-file]] +The Initialization File +~~~~~~~~~~~~~~~~~~~~~~~ + +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 +<>. + +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. + +[[initialization-file]] +.Initialization file used by hello module +====================================================================== +---------------------------------------------------------------------- +#!/bin/bash +###################################################################### +# +# hello.sh -- Print out greetings to standard output and exit +# successfully. +# +# Written by: +# * Alain Reguera Delgado , 2013 +# +# Copyright (C) 2009-2013 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or (at +# your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +###################################################################### + +function hello { + + tcar_printMessage "`gettext "Hello, World!"`" --as-stdout-line + +} +---------------------------------------------------------------------- +====================================================================== + +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 <>. + +Summary +~~~~~~~ + +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. + +[[module-optimization]] +Module Optimization +------------------- + +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''. + +[[related-functions]] +Related Functions +~~~~~~~~~~~~~~~~~ + +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 <>. + +[[initialization-file-extended]] +.Initialization file used by hello module (extended) +====================================================================== +---------------------------------------------------------------------- +function hello { + + # Define default greeting message. + local HELLO_WORLD="`gettext "Hello, World!"`" + + # Define actions variable. Here is where actions related to + # module-specific options are stored in for further processing. + local ACTIONS='' + + # Interpret module-specific options and store related actions. + hello_getOptions + + # Print greeting message + if [[ -z ${ACTIONS} ]];then + # Using parent module. + tcar_printMessage "${HELLO_WORLD}" --as-stdout-line + else + # Using child module. + tcar_setModuleEnvironment -m 'output' -t 'child' + fi + +} +---------------------------------------------------------------------- +====================================================================== + +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. + +<> 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. + +[[hello_getOptions-definition]] +.Related function definition (hello_getOptions) +====================================================================== +---------------------------------------------------------------------- +function hello_getOptions { + + # Define short options we want to support. + local ARGSS="h::,v,g:,l,u,c,r" + + # Define long options we want to support. + local ARGSL="help::,version,greeting:,lower,upper,camel,random" + + # Redefine arguments using getopt(1) command parser. + tcar_setModuleArguments + + # Reset positional parameters on this function, using output + # produced from (getopt) arguments parser. + eval set -- "${TCAR_MODULE_ARGUMENT}" + + # Look for options passed through command-line. + while true; do + case "${1}" in + + -h | --help ) + tcar_printHelp "${2}" + ;; + + -v | --version ) + tcar_printVersion "${TCAR_MODULE_NAME}" + ;; + + -g | --greeting ) + HELLO_WORLD="${2:-${HELLO_WORLD}}" + shift 2 + ;; + + -l | --lower ) + ACTIONS="lower ${ACTIONS}" + shift 1 + ;; + + -u | --upper ) + ACTIONS="upper ${ACTIONS}" + shift 1 + ;; + + -c | --camel ) + ACTIONS="camel ${ACTIONS}" + shift 1 + ;; + + -r | --random ) + ACTIONS="random ${ACTIONS}" + shift 1 + ;; + + -- ) + shift 1 + break + ;; + esac + done + + # Redefine arguments using current positional parameters. Only + # paths should remain as arguments, at this point. + TCAR_MODULE_ARGUMENT="${@}" + +} +---------------------------------------------------------------------- +====================================================================== + +[IMPORTANT] +<> 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. + +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. + +[[child-modules]] +Child Modules +~~~~~~~~~~~~~ + +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. + +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 <>. + +[[debug-child-modules]] +.Debugging execution of child modules +====================================================================== +---------------------------------------------------------------------- +Thu 10 Oct 2013 11:52:41 PM CDT =========================> [0] | main +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [0]=hello +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE parent +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT --upper --greeting=hi +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh +Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAIN hello.sh +Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales +Thu 10 Oct 2013 11:52:41 PM CDT export -f hello +Thu 10 Oct 2013 11:52:41 PM CDT export -f hello_getOptions +Thu 10 Oct 2013 11:52:41 PM CDT -------------------------> hello --upper --greeting=hi +Thu 10 Oct 2013 11:52:41 PM CDT =========================> [1] | hello +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [1]=output +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE child +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST output +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh +Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAIN output.sh +Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales +Thu 10 Oct 2013 11:52:41 PM CDT export -f output +Thu 10 Oct 2013 11:52:41 PM CDT -------------------------> output +Thu 10 Oct 2013 11:52:41 PM CDT =========================> [2] | output +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [2]=upper +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE child +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST camel|lower|random|upper +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Upper +Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Upper/Modules +Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Upper/Manuals +Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales +Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Upper/Configs +Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Upper/upper.sh +Thu 10 Oct 2013 11:52:42 PM CDT TEXTDOMAIN upper.sh +Thu 10 Oct 2013 11:52:42 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales +Thu 10 Oct 2013 11:52:42 PM CDT export -f upper +Thu 10 Oct 2013 11:52:42 PM CDT -------------------------> upper +HI +Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- upper +Thu 10 Oct 2013 11:52:42 PM CDT unset -f upper +Thu 10 Oct 2013 11:52:42 PM CDT <========================= [2] | output +Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- output +Thu 10 Oct 2013 11:52:42 PM CDT unset -f output +Thu 10 Oct 2013 11:52:42 PM CDT <========================= [1] | hello +Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- hello +Thu 10 Oct 2013 11:52:42 PM CDT unset -f hello +Thu 10 Oct 2013 11:52:42 PM CDT unset -f hello_getOptions +Thu 10 Oct 2013 11:52:42 PM CDT <========================= [0] | main +---------------------------------------------------------------------- +====================================================================== + +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. + +[[sibling-modules]] +Sibling Modules +~~~~~~~~~~~~~~~ + +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 <>. + +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*. + +[[debug-sibling-modules]] +.Debugging execution of sibling modules +====================================================================== +---------------------------------------------------------------------- +Thu 10 Oct 2013 11:51:42 PM CDT =========================> [0] | main +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_BASEDIR Automation/Modules +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_NAME [0]=hello +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_TYPE parent +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_ARGUMENT --camel --greeting=hi +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs +Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh +Thu 10 Oct 2013 11:51:42 PM CDT TEXTDOMAIN hello.sh +Thu 10 Oct 2013 11:51:42 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales +Thu 10 Oct 2013 11:51:43 PM CDT export -f hello +Thu 10 Oct 2013 11:51:43 PM CDT export -f hello_getOptions +Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> hello --camel --greeting=hi +Thu 10 Oct 2013 11:51:43 PM CDT =========================> [1] | hello +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [1]=output +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE child +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST output +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh +Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN output.sh +Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales +Thu 10 Oct 2013 11:51:43 PM CDT export -f output +Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> output +Thu 10 Oct 2013 11:51:43 PM CDT =========================> [2] | output +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [2]=camel +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE child +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Camel +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Camel/Modules +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Camel/Manuals +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Camel/Locales +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Camel/Configs +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Camel/camel.sh +Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN camel.sh +Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Camel/Locales +Thu 10 Oct 2013 11:51:43 PM CDT export -f camel +Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> camel +Thu 10 Oct 2013 11:51:43 PM CDT =========================> [3] | camel +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [3]=upper +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE sibling +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Upper +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Upper/Modules +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Upper/Manuals +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Upper/Configs +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Upper/upper.sh +Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN upper.sh +Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales +Thu 10 Oct 2013 11:51:43 PM CDT export -f upper +Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> upper +H +Thu 10 Oct 2013 11:51:43 PM CDT <------------------------- upper +Thu 10 Oct 2013 11:51:43 PM CDT unset -f upper +Thu 10 Oct 2013 11:51:43 PM CDT <========================= [3] | camel +Thu 10 Oct 2013 11:51:43 PM CDT =========================> [3] | camel +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [3]=lower +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE sibling +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Lower +Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Lower/Modules +Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Lower/Manuals +Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Lower/Locales +Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Lower/Configs +Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Lower/lower.sh +Thu 10 Oct 2013 11:51:44 PM CDT TEXTDOMAIN lower.sh +Thu 10 Oct 2013 11:51:44 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Lower/Locales +Thu 10 Oct 2013 11:51:44 PM CDT export -f lower +Thu 10 Oct 2013 11:51:44 PM CDT -------------------------> lower +i +Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- lower +Thu 10 Oct 2013 11:51:44 PM CDT unset -f lower +Thu 10 Oct 2013 11:51:44 PM CDT <========================= [3] | camel +Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- camel +Thu 10 Oct 2013 11:51:44 PM CDT unset -f camel +Thu 10 Oct 2013 11:51:44 PM CDT <========================= [2] | output +Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- output +Thu 10 Oct 2013 11:51:44 PM CDT unset -f output +Thu 10 Oct 2013 11:51:44 PM CDT <========================= [1] | hello +Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- hello +Thu 10 Oct 2013 11:51:44 PM CDT unset -f hello +Thu 10 Oct 2013 11:51:44 PM CDT unset -f hello_getOptions +Thu 10 Oct 2013 11:51:44 PM CDT <========================= [0] | main +---------------------------------------------------------------------- +====================================================================== + +<> 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._ + +[[recursive-modules]] +Recursive Modules +~~~~~~~~~~~~~~~~~ + +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 +<>. + +[CAUTION] +When you execute modules recursively, you should be very careful not +to get trapped into an endless loop. + +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. + +[[debug-recursive-modules]] +.Processing execution of modules recursively +====================================================================== +---------------------------------------------------------------------- +Thu 10 Oct 2013 11:50:03 PM CDT =========================> [0] | main +Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_BASEDIR Automation/Modules +Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_NAME [0]=hello +Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_TYPE parent +Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_ARGUMENT --random --greeting=Hello +Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs +Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello +Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules +Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh +Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN hello.sh +Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales +Thu 10 Oct 2013 11:50:04 PM CDT export -f hello +Thu 10 Oct 2013 11:50:04 PM CDT export -f hello_getOptions +Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> hello --random --greeting=Hello +Thu 10 Oct 2013 11:50:04 PM CDT =========================> [1] | hello +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_NAME [1]=output +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_TYPE child +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_ARGUMENT +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_LIST output +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh +Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN output.sh +Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales +Thu 10 Oct 2013 11:50:04 PM CDT export -f output +Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> output +Thu 10 Oct 2013 11:50:04 PM CDT =========================> [2] | output +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_NAME [2]=random +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_TYPE child +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_ARGUMENT +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_LIST camel|lower|random|upper +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Random +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Random/Modules +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Random/Manuals +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Random/Locales +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Random/Configs +Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Random/random.sh +Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN random.sh +Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Random/Locales +Thu 10 Oct 2013 11:50:04 PM CDT export -f random +Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> random +H +Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random +H +Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random +l +Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random +l +Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random +H +Thu 10 Oct 2013 11:50:04 PM CDT <------------------------- random +Thu 10 Oct 2013 11:50:04 PM CDT unset -f random +Thu 10 Oct 2013 11:50:04 PM CDT <========================= [2] | output +Thu 10 Oct 2013 11:50:04 PM CDT <------------------------- output +Thu 10 Oct 2013 11:50:05 PM CDT unset -f output +Thu 10 Oct 2013 11:50:05 PM CDT <========================= [1] | hello +Thu 10 Oct 2013 11:50:05 PM CDT <------------------------- hello +Thu 10 Oct 2013 11:50:05 PM CDT unset -f hello +Thu 10 Oct 2013 11:50:05 PM CDT unset -f hello_getOptions +Thu 10 Oct 2013 11:50:05 PM CDT <========================= [0] | main +---------------------------------------------------------------------- +====================================================================== + +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. + +Summary +~~~~~~~ + +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. + +[[module-structure]] +Module Structure +---------------- + +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 <>. + +[IMPORTANT] +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 https://centos.org.cu/bugs/view.php?id=114[Bug 114]. + +[[module-directory-layout]] +.The directory structure of hello module +====================================================================== +---------------------------------------------------------------------- +. +|-- COPYING +|-- Locales/ +|-- Manuals/ +|-- Modules/ +| `-- Hello/ <1> +| |-- Locales +| | |-- es_ES +| | | |-- LC_MESSAGES +| | | | `-- hello.sh.mo <2> +| | | `-- hello.sh.po +| | `-- hello.sh.pot +| |-- Manuals +| | |-- hello.asciidoc +| | |-- man1 +| | | `-- hello.1 <3> +| | `-- render.conf <4> +| |-- Modules +| | `-- Output <5> +| | |-- Modules +| | | |-- Camel +| | | | `-- camel.sh +| | | |-- Lower <6> +| | | | `-- lower.sh <7> +| | | |-- Random +| | | | `-- random.sh +| | | `-- Upper +| | | `-- upper.sh +| | `-- output.sh <8> +| |-- hello.sh <9> +| `-- hello_getOptions.sh <10> +|-- Scripts/ +|-- centos-art.conf.sh +`-- centos-art.sh +---------------------------------------------------------------------- + +<1> Child module of *centos-art.sh* script and parent module of +*output* module. +<2> Spanish translated strings of *hello* module. +<3> Manpage shown when you request help of *hello* module. +<4> Configuration file used to produce the manpage of *hello* module. +<5> Child module of *hello* module and parent module of *camel,* +*lower,* *random* and *upper* modules. +<6> Child module of *output* module and sibling module of *camel,* +*random* and *upper* module. +<7> Initialization file of *lower* module. +<8> Initialization file of *output* module. +<9> Initialization file of *hello* module. +<10> Function file related to *hello* module. +====================================================================== + +<> 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). + +The Function Files +~~~~~~~~~~~~~~~~~~ + +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 <>. + +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. + +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. + +See also: <> and <>. + +[[module-directory-modules]] +The +Modules+ Directory +~~~~~~~~~~~~~~~~~~~~~~~ + +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. + +[[module-directory-locales]] +The +Locales+ Directory +~~~~~~~~~~~~~~~~~~~~~~~ + +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. + +[[module-directory-manuals]] +The +Manuals+ Directory +~~~~~~~~~~~~~~~~~~~~~~~ + +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. + +[[module-directory-configs]] +The +Configs+ Directory +~~~~~~~~~~~~~~~~~~~~~~~ + +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. + +Summary +~~~~~~~ + +This section has covered the directories and files a module is made of +inside the *centos-art.sh* script. + +// vim: set syntax=asciidoc: diff --git a/Scripts/Locales/es_ES/tcar.po b/Scripts/Locales/es_ES/tcar.po new file mode 100644 index 0000000..362fb80 --- /dev/null +++ b/Scripts/Locales/es_ES/tcar.po @@ -0,0 +1,202 @@ +msgid "" +msgstr "" +"Project-Id-Version: tcar 0.6\n" +"Report-Msgid-Bugs-To: centos-l10n-es@centos.org.cu\n" +"POT-Creation-Date: 2013-10-07 14:11-0400\n" +"PO-Revision-Date: 2013-10-07 14:11-0400\n" +"Last-Translator: Localization SIG \n" +"Language-Team: Spanish\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" + +#: Automation/tcar.sh:65 +msgid "has not execution rights." +msgstr "no tiene permiso de ejecución." + +#: Automation/Scripts/tcar_checkFiles.sh:56 +msgid "isn't a directory." +msgstr "no es un directorio." + +#: Automation/Scripts/tcar_checkFiles.sh:62 +msgid "doesn't exist." +msgstr "no existe." + +#: Automation/Scripts/tcar_checkFiles.sh:68 +msgid "isn't a regular file." +msgstr "no es un fichero regular." + +#: Automation/Scripts/tcar_checkFiles.sh:74 +msgid "isn't a symbolic link." +msgstr "no es un enlace simbólico." + +#: Automation/Scripts/tcar_checkFiles.sh:80 +msgid "isn't an executable file." +msgstr "no es un fichero ejecutable." + +#: Automation/Scripts/tcar_checkFiles.sh:87 +#, sh-format +msgid "isn't a \"$MIME\" file." +msgstr "no es un fichero \"$MIME\"." + +#: Automation/Scripts/tcar_checkFiles.sh:93 +msgid "doesn't match its pattern." +msgstr "no coincide con su patrón." + +#: Automation/Scripts/tcar_checkFiles.sh:99 +msgid "isn't installed in the system." +msgstr "no está instalado en el sistema." + +#: Automation/Scripts/tcar_checkFiles.sh:119 +msgid "No file for processing found." +msgstr "Ningún fichero encontrado para procesar." + +#: Automation/Scripts/tcar_checkFiles.sh:146 +msgid "The condition command provided isn't supported." +msgstr "El comando condición suministrado no está soportado." + +#: Automation/Scripts/tcar_getTemporalFile.sh:46 +msgid "The first argument cannot be empty." +msgstr "El primer argumento no puede estar vacío." + +#: Automation/Scripts/tcar_printCopyrightInfo.sh:52 +msgid "Creative Common Attribution-ShareAlike 3.0 License" +msgstr "Licencia Creativa Común de Atribución-Compartida 3.0." + +#: Automation/Scripts/tcar_printCopyrightInfo.sh:125 +msgid "All rights reserved." +msgstr "Todos los derechos reservados." + +#: Automation/Scripts/tcar_printMessage.sh:40 +msgid "The message cannot be empty." +msgstr "El mensaje no puede estar vacío." + +#: Automation/Scripts/tcar_printMessage.sh:126 +msgid "To know more, run" +msgstr "Para conocer más, ejecuta" + +#: Automation/Scripts/tcar_printMessage.sh:132 +msgid "yes" +msgstr "sí" + +#: Automation/Scripts/tcar_printMessage.sh:135 +msgid "no" +msgstr "no" + +#: Automation/Scripts/tcar_printMessage.sh:222 +msgid "Processing" +msgstr "Procesando" + +#: Automation/Scripts/tcar_printMessage.sh:226 +msgid "Cropping from" +msgstr "Recortando desde" + +#: Automation/Scripts/tcar_printMessage.sh:230 +msgid "Tuning-up" +msgstr "Ajustando" + +#: Automation/Scripts/tcar_printMessage.sh:234 +msgid "Checking" +msgstr "Comprobando" + +#: Automation/Scripts/tcar_printMessage.sh:238 +msgid "Combining" +msgstr "Combinando" + +#: Automation/Scripts/tcar_printMessage.sh:242 +msgid "Editing" +msgstr "Editando" + +#: Automation/Scripts/tcar_printMessage.sh:247 +msgid "Updating" +msgstr "Actualizando" + +#: Automation/Scripts/tcar_printMessage.sh:249 +msgid "Creating" +msgstr "Creando" + +#: Automation/Scripts/tcar_printMessage.sh:254 +msgid "Deleting" +msgstr "Borrando" + +#: Automation/Scripts/tcar_printMessage.sh:258 +msgid "Reading" +msgstr "Leyendo" + +#: Automation/Scripts/tcar_printMessage.sh:262 +msgid "Saved as" +msgstr "Salvado como" + +#: Automation/Scripts/tcar_printMessage.sh:266 +msgid "Linked to" +msgstr "Enlazado como" + +#: Automation/Scripts/tcar_printMessage.sh:270 +msgid "Moved to" +msgstr "Movido a" + +#: Automation/Scripts/tcar_printMessage.sh:274 +msgid "Translation" +msgstr "Traducción" + +#: Automation/Scripts/tcar_printMessage.sh:278 +msgid "Translating" +msgstr "Traduciendo" + +#: Automation/Scripts/tcar_printMessage.sh:282 +msgid "Validating" +msgstr "Validando" + +#: Automation/Scripts/tcar_printMessage.sh:286 +msgid "Template" +msgstr "Plantilla" + +#: Automation/Scripts/tcar_printMessage.sh:290 +msgid "Configuration" +msgstr "Configuración" + +#: Automation/Scripts/tcar_printMessage.sh:294 +msgid "Palette" +msgstr "Paleta" + +#: Automation/Scripts/tcar_printVersion.sh:45 +#, sh-format +msgid "" +"$PROGRAM_NAME comes with NO WARRANTY, to the extent permitted by law. You " +"may redistribute copies of $PROGRAM_NAME under the terms of the GNU General " +"Public License. For more information about these matters, see the files " +"named COPYING." +msgstr "" +"$PROGRAM_NAME viene SIN GARANTÍAS, a todo el alcance permitido por la ley. " +"Usted puede distribuir copias de $PROGRAM_NAME bajo los términos de la " +"Licencia Pública General de GNU. Para más información sobre estos asuntos, " +"vea el fichero COPYING." + +#: Automation/Scripts/tcar_setModuleArguments.sh:95 +msgid "The argument verification failed." +msgstr "La verificación de argumento falló." + +#: Automation/Scripts/tcar_setModuleEnvironmentScripts.sh:53 +msgid "No function file was found." +msgstr "Ningún fichero de función fue encontrado." + +#: Automation/Scripts/tcar_setModuleEnvironment.sh:56 +msgid "Unknown" +msgstr "Desconocido" + +#: Automation/Scripts/tcar_setModuleEnvironment.sh:145 +msgid "Opening module" +msgstr "Abriendo módulo" + +#: Automation/Scripts/tcar_setModuleEnvironment.sh:149 +msgid "Closing module" +msgstr "Cerrando módulo" + +#: Automation/Scripts/tcar_setModuleEnvironment.sh:159 +msgid "Closing variables" +msgstr "Cerrando variables" + +#: Automation/Scripts/tcar_unsetModuleEnvironment.sh:37 +msgid "The export id was not provided." +msgstr "El identificador de exportación no fue suministrado." diff --git a/Scripts/tcar.conf b/Scripts/tcar.conf new file mode 100644 index 0000000..a281334 --- /dev/null +++ b/Scripts/tcar.conf @@ -0,0 +1,81 @@ +#!/bin/bash +###################################################################### +# +# tcar.conf -- Configuration file for tcar automation script. +# +###################################################################### + +###################################################################### +# Repository (source files) +###################################################################### + +# Base directory where repository files are installed in. +declare -x TCAR_BASEDIR=/usr/share/tcar + +# Base directory where automation scripts are installed in. +declare -x TCAR_SCRIPT_BASEDIR=${TCAR_BASEDIR}/Scripts + +# Base directory where man pages are installed in. +declare -x TCAR_SCRIPT_MANUALS=/usr/share/man/man1 + +# Default text editor. +declare -x TCAR_SCRIPT_EDITOR=/usr/bin/vim + +# Base directory where automation script modules are installed in. +declare -x TCAR_SCRIPT_MODULES_BASEDIR=${TCAR_SCRIPT_BASEDIR}/Modules + +# Directory to store temporal files. +declare -x TCAR_SCRIPT_TEMPDIR=$(mktemp -p /tmp -d ${TCAR_SCRIPT_NAME}-XXXXXX) + +###################################################################### +# Workplace (final content) +###################################################################### + +# Base directory where final content is produced in. This value is +# also known as the "workplace" and can be customized later by the +# user, using its personal configuration file (e.g., ~/.tcar.conf). +# The value of this variable must point to a directory structure +# created by the prepare command of tcar script. +declare -x TCAR_WORKDIR=/tmp/${TCAR_SCRIPT_NAME}-workplace/ + +###################################################################### +# Internationalization +###################################################################### + +# Set the script text domain. This information is used by gettext +# system to retrieve translated strings from machine object (MO) files +# with this name. This variable is reset based on the common function +# or module in turn. +declare -x TEXTDOMAIN="${TCAR_SCRIPT_NAME}" + +# Set the script text domain directory. This information is used by +# gettext system to know where the machine object (MO) files are +# stored in. The value of variable is the same for both common +# functions and individual modules. +declare -x TEXTDOMAINDIR=/usr/share/locale + +###################################################################### +# Script Flags +###################################################################### + +# Set filter flag (-f|--filter). This flag is mainly used to reduce +# the number of files to process and is interpreted as egrep-posix +# regular expression. By default, when this flag is not provided, all +# paths in the working copy will match, except files inside hidden +# directories like `.svn' and `.git' that will be omitted. +declare -x TCAR_FLAG_FILTER='[[:alnum:]_/-]+' + +# Set verbosity flag (-q|--quiet). This flag controls whether tcar.sh +# script prints messages or not. By default, all messages are +# suppressed except those directed to standard error. +declare -x TCAR_FLAG_QUIET='false' + +# Set affirmative flag (-y|--yes). This flag controls whether tcar.sh +# script does or does not pass confirmation request points. By +# default, it doesn't. +declare -x TCAR_FLAG_YES='false' + +# Set debugger flag (-d|--debug). This flag controls whether tcar.sh +# script does or does not print debugging information. The tcar.sh +# script prints debug information to standard output. +declare -x TCAR_FLAG_DEBUG='false' diff --git a/Scripts/tcar.sh b/Scripts/tcar.sh new file mode 100755 index 0000000..815a79e --- /dev/null +++ b/Scripts/tcar.sh @@ -0,0 +1,197 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +declare -xr TCAR_SCRIPT_NAME="tcar" +declare -xr TCAR_SCRIPT_VERSION="0.9" + +###################################################################### +# Script Internationalization +###################################################################### + +# Set the script language information using the LC format. This format +# shows both language and country information (e.g., `es_ES'). +declare -xr TCAR_SCRIPT_LANG_LC=$(echo ${LANG} | cut -d'.' -f1) + +# Set the script language information using the LL format. This format +# shows only the language information (e.g., `es'). +declare -xr TCAR_SCRIPT_LANG_LL=$(echo ${TCAR_SCRIPT_LANG_LC} | cut -d'_' -f1) + +# Set the script language information using the CC format. This format +# shows only the country information (e.g., `ES'). +declare -xr TCAR_SCRIPT_LANG_CC=$(echo ${TCAR_SCRIPT_LANG_LC} | cut -d'_' -f2) + +# Set function environments required by GNU gettext system. +. gettext.sh + +###################################################################### +# Script Configuration Files (redefine global variables) +###################################################################### + +declare -xr TCAR_SCRIPT_CONFIGS="/etc/tcar/tcar.conf ${HOME}/.tcar.conf" +for TCAR_SCRIPT_CONFIG in ${TCAR_SCRIPT_CONFIGS};do + if [[ -f ${TCAR_SCRIPT_CONFIG} ]];then + . ${TCAR_SCRIPT_CONFIG} + fi +done + +###################################################################### +# Script Global Functions +###################################################################### + +# Export script's environment functions. +for SCRIPT_FILE in $(ls ${TCAR_SCRIPT_BASEDIR}/tcar_*.sh);do + if [[ -x ${SCRIPT_FILE} ]];then + . ${SCRIPT_FILE} + export -f $(grep '^function ' ${SCRIPT_FILE} | cut -d' ' -f2) + else + echo "${SCRIPT_FILE} `gettext "has not execution rights."`" + exit 1 + fi +done + +###################################################################### +# Signals +###################################################################### + +# Trap signals in order to terminate the script execution correctly +# (e.g., removing all temporal files before leaving). Trapping the +# exit signal seems to be enough by now, since it is always present as +# part of the script execution flow. Each time the tcar.sh +# script is executed it will inevitably end with an EXIT signal at +# some point of its execution, even if it is interrupted in the middle +# of its execution (e.g., through `Ctrl+C'). +trap tcar_terminateScriptExecution 0 + +###################################################################### +# Default Action +###################################################################### + +if [[ $# -eq 0 ]];then + tcar_printUsage +fi + +###################################################################### +# Parse Command-line Arguments +###################################################################### + +declare -x TCAR_MODULE_NAME='' +declare -x TCAR_MODULE_ARGUMENT='' +declare -x TCAR_SCRIPT_ARGUMENT='' + +# Retrieve module's name using the first argument of tcar.sh +# script as reference. +if [[ ! ${1} =~ '^-' ]];then + TCAR_MODULE_NAME="${1}"; shift 1 +else + TCAR_MODULE_NAME="" +fi + +# Initialize tcar.sh script specific options. The way tcar.sh script +# retrieves its options isn't as sophisticated (e.g., it doesn't +# provide valid-option verifications) as it is provided by getopt +# command. I cannot use getopt here because it is used already when +# loading module-specific options. Using more than one invocation of +# getopt in the same script is not possible (e.g., one of the +# invocations may enter in conflict with the other one when different +# option definitions are expected in the command-line.) +while true; do + + # Store non-option arguments passed to tcar.sh script. + if [[ ! ${1} =~ '^-' ]];then + TCAR_SCRIPT_ARGUMENT="${1} ${TCAR_SCRIPT_ARGUMENT}" + shift 1 + if [[ $# -gt 0 ]];then + continue + else + break + fi + fi + + case "${1}" in + + --help ) + + if [[ -z ${TCAR_MODULE_NAME} ]];then + tcar_printUsage + else + # Store the argument for further processing inside the + # module environment that will be executed later. + TCAR_MODULE_ARGUMENT="-g ${1} ${TCAR_MODULE_ARGUMENT}" + shift 1 + fi + ;; + + --version ) + + if [[ -z ${TCAR_MODULE_NAME} ]];then + tcar_printVersion + else + TCAR_MODULE_ARGUMENT="-g ${1} ${TCAR_MODULE_ARGUMENT}" + shift 1 + fi + ;; + + --quiet ) + + TCAR_FLAG_QUIET='true' + shift 1 + ;; + + --yes ) + + TCAR_FLAG_YES='true' + shift 1 + ;; + + --debug ) + + TCAR_FLAG_DEBUG='true' + shift 1 + ;; + + * ) + + # Store module-specific option arguments. This is, all + # arguments not considered part of tcar.sh script + # itself. The module-specific option arguments are passed, + # later, to getopt for option processing, inside the + # module-specific environments. + TCAR_MODULE_ARGUMENT="-g ${1} ${TCAR_MODULE_ARGUMENT}" + shift 1 + if [[ $# -gt 0 ]];then + continue + else + break + fi + ;; + esac +done + +# Initiate module-specific environment. +tcar_setModuleEnvironment -m "${TCAR_MODULE_NAME}" ${TCAR_MODULE_ARGUMENT} ${TCAR_SCRIPT_ARGUMENT} + +# At this point everything has been done without errors. So, exit +# tcar.sh script successfully. +exit 0 diff --git a/Scripts/tcar_checkFiles.sh b/Scripts/tcar_checkFiles.sh new file mode 100755 index 0000000..b69c9ea --- /dev/null +++ b/Scripts/tcar_checkFiles.sh @@ -0,0 +1,156 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardizes the way file conditional expressions are applied to +# files. Here is where tcar.sh script answers questions like: is the +# file a regular file or a directory? Or, is it a symbolic link? Or +# even, does it have execution rights, etc. If the verification fails +# somehow at any point, an error message is output and tcar.sh script +# finishes its execution. +function tcar_checkFiles { + + # Reset text domain locally, in order to prevent this function + # from using the last text domain definition. By default all + # common functions do use the same MO file. + local TEXTDOMAIN="${TCAR_SCRIPT_NAME}" + + # Initialize local array variables. + local -a CONDITION_COMMAND + local -a CONDITION_PATTERN + local -a CONDITION_MESSAGE + + # Initialize local counter. + local COUNTER=0 + + OPTIND=1 + while getopts "i:,r,m:,n,d,e,f,h,x" OPTION "${@}"; do + + case "${OPTION}" in + + d ) + CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/test' + CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-d' + CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "isn't a directory."`" + ;; + + e ) + CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/test' + CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-e' + CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "doesn't exist."`" + ;; + + f ) + CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/test' + CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-f' + CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "isn't a regular file."`" + ;; + + h ) + CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/test' + CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-h' + CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "isn't a symbolic link."`" + ;; + + x ) + CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/test' + CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-x' + CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "isn't an executable file."`" + ;; + + i ) + local MIME=${OPTARG} + CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/file' + CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-bi' + CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`eval_gettext "isn't a \\\"\\\$MIME\\\" file."`" + ;; + + m ) + CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='match' + CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]="${OPTARG}" + CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "doesn't match its pattern."`" + ;; + + n ) + CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]="/bin/rpm" + CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]="-q --quiet" + CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "isn't installed in the system."`" + ;; + + esac + done + + # Clean up positional parameters to reflect the fact that options + # have been processed already. + shift $(( ${OPTIND} - 1 )) + + # Define list of files we want to apply verifications to, now that + # all option-like arguments have been removed from positional + # parameters list so we are free to go with the verifications. + local FILE='' + local FILES=${@} + + # Verify existence of files to prevent tcar.sh script from + # using the current location in cases when it shouldn't (e.g., + # here it is expecting a list of files to process.). + if [[ -z ${FILES} ]];then + tcar_printMessage "`gettext "No file for processing found."`" --as-error-line + fi + + for FILE in ${FILES};do + + until [[ ${COUNTER} -eq ${#CONDITION_PATTERN[*]} ]];do + + case ${CONDITION_COMMAND[${COUNTER}]} in + + "/usr/bin/test" | "/bin/rpm" ) + ${CONDITION_COMMAND[${COUNTER}]} ${CONDITION_PATTERN[${COUNTER}]} ${FILE} \ + || tcar_printMessage "${FILE} ${CONDITION_MESSAGE[${COUNTER}]}" --as-error-line + ;; + + "/usr/bin/file" ) + if [[ ! $(${CONDITION_COMMAND[${COUNTER}]} ${CONDITION_PATTERN[${COUNTER}]} ${FILE}) =~ "^${MIME}" ]];then + tcar_printMessage "${FILE} ${CONDITION_MESSAGE[${COUNTER}]}" --as-error-line + fi + ;; + + "match" ) + if [[ ! ${FILE} =~ "${CONDITION_PATTERN[${COUNTER}]}" ]];then + tcar_printMessage "${FILE} ${CONDITION_MESSAGE[${COUNTER}]}" --as-error-line + fi + ;; + + * ) + tcar_printMessage "`gettext "The condition command provided isn't supported."`" --as-error-line + ;; + + esac + + COUNTER=$((${COUNTER} + 1)) + + done + + done + +} diff --git a/Scripts/tcar_checkModuleName.sh b/Scripts/tcar_checkModuleName.sh new file mode 100755 index 0000000..51e06af --- /dev/null +++ b/Scripts/tcar_checkModuleName.sh @@ -0,0 +1,37 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Verify whether child and sibling modules do exist or not, based on +# module's based directory. +function tcar_checkModuleName { + + local TCAR_MODULE_LIST=$(ls ${TCAR_MODULE_BASEDIR} | tr '\n' '|' \ + | sed -r 's/\|$//' | tr '[[:upper:]]' '[[:lower:]]') + + tcar_printMessage "TCAR_MODULE_LIST : ${TCAR_MODULE_LIST}" --as-debugger-line + + tcar_checkFiles -m "^(${TCAR_MODULE_LIST})$" "${TCAR_MODULE_NAME}" + +} diff --git a/Scripts/tcar_checkRepoDirSource.sh b/Scripts/tcar_checkRepoDirSource.sh new file mode 100755 index 0000000..91e18e3 --- /dev/null +++ b/Scripts/tcar_checkRepoDirSource.sh @@ -0,0 +1,94 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardizes the path construction of directories inside the working +# copy, using absolute paths. This function transforms relative paths +# passed as non-option arguments to tcar.sh script command-line into +# absolute paths inside the working copy, based on whether you are +# using Subversion or Git as version control system. Further +# verifications, (e.g., whether they really exist as directories +# inside the working copy or not) should be realized outside this +# function. +# +# Use this function whenever you want to be sure non-option arguments +# passed to tcar.sh script command-line do always point to directories +# inside the working copy. Transforming relative paths into absolute +# paths, before processing them, is very useful when you need to +# execute the tcar.sh script as command (e.g., `tcar') anywhere on +# your workstation. +function tcar_checkRepoDirSource { + + local LOCATION=${1} + + # Remove any dot from arguments passed to tcar.sh script. + # This way it is possible to use a single dot to reflect the + # current location from which tcar.sh was executed. Notice + # that using a dot as argument is optional (e.g.: when you pass no + # argument to tcar command-line, the current location is + # used as default location). However, it might be useful to use a + # dot as argument when you want to include the current location in + # a list of arguments to process. Don't forget that dot slash can + # be used to refer locations relatively. + LOCATION=$(echo "${LOCATION}" | sed -r "s,^\.(/([[:alnum:]_/.-]+)?)?$,$(pwd)\1,g") + + # Remove the path to repository's base directory from location in + # order to avoid path duplications here. + LOCATION=$(echo "${LOCATION}" | sed "s,${TCAR_BASEDIR}/,,g") + + # When we use Git as version control system, there isn't a need of + # using the `trunk', `branches', `tags' convention we were using + # for Subversion. The working copy begins directly with the + # content of our repository (e.g., Documentation, Scripts, + # Identity and Locales). + # + # When we use Subversion as version control system, we follow the + # `trunk', `branches', `tags' convention to organize files inside + # the repository and need to redefine the source path in order to + # build the repository absolute path from the repository top level + # on. As convention, when you prepare your working copy through + # tcar.sh script, the absolute path to the `trunk/' + # directory is used as working copy. This is, path arguments + # provided to tcar.sh script will be interpreted from trunk/ + # directory level on. For example, the following command should + # work correctly in both Subversion and Git repositories: + # + # tcar render Documentation/Manuals/Docbook/Tcar-ug + # + # There isn't a need of verifying the paths built here. This is + # something we do later, using the tcar_checkFiles function. We + # don't do the file verification here to avoid malformed error + # messages when we reassign variable values using this function as + # reference (e.g., in order to prevent error messages from being + # stored inside variables.). + LOCATION=${TCAR_BASEDIR}/${LOCATION} + + # Remove trailing slashes passed as argument. The single slash + # form is used to refer the repository's root directory. The + # single slash form passed as argument of tcar.sh script is + # useful to execute commands over the + # entire repository tree. + echo "${LOCATION}" | sed -r -e 's,/+,/,g' -e 's,/+$,,g' + +} diff --git a/Scripts/tcar_checkWorkDirSource.sh b/Scripts/tcar_checkWorkDirSource.sh new file mode 100755 index 0000000..118460f --- /dev/null +++ b/Scripts/tcar_checkWorkDirSource.sh @@ -0,0 +1,55 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Prepare non-option arguments passed through the command-line for +# further processing. When the argument provided is not an absolute +# path this function transforms it into an absolute path using the +# current working directory. +function tcar_checkWorkDirSource { + + local LOCATION=${1} + + # Append the current working directory when the location provided + # isn't absolute. + if [[ ! ${LOCATION} =~ '^/' ]];then + LOCATION=${PWD}/${LOCATION} + fi + + # Remove both consecutive slashes and trailing slashes from final + # location. + echo "${LOCATION}" | sed -r -e 's,/+,/,g' -e 's,/+$,,g' + + # The single slash form doesn't point to repository's root + # directory anymore. Instead, when a single slash is passed + # as argument through the command-line, it preserves its regular + # meaning which is pointing the workstation's file system. + + # The path verification isn't appropriate here because this + # function is commonly used inside variable assignments and flow + # control doesn't take place in such situation. In case path + # verification fails here, the script wouldn't end its execution + # which contradicts the expected behaviour. + +} diff --git a/Scripts/tcar_getConfigLines.sh b/Scripts/tcar_getConfigLines.sh new file mode 100755 index 0000000..6cd9179 --- /dev/null +++ b/Scripts/tcar_getConfigLines.sh @@ -0,0 +1,64 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way configuration lines are retrieved form +# configuration files. As arguments, the configuration file absolute +# path, the configuration section name, and the configuration option +# name must be provided. +function tcar_getConfigLines { + + # Initialize absolute path to configuration file. + local CONFIGURATION_FILE="${1}" + + # Initialize configuration section name where the variable value + # we want to to retrieve is set in. + local CONFIGURATION_SECTION="${2}" + + # Initialize variable name we want to retrieve value from. + local CONFIGURATION_OPTION="${3}" + + # Verify configuration variable name. When no variable name is + # provided print all configuration lines that can be considered as + # well-formed paths. Be sure configuration variable name starts + # just at the beginning of the line. + if [[ ! ${CONFIGURATION_OPTION} =~ '^[[:alnum:]_./-]+$' ]];then + CONFIGURATION_OPTION='[[:alnum:]_./-]+[[:space:]]*=' + fi + + # Retrieve configuration lines from configuration file. Don't sort + # the value of this value so as to preserve the order given in the + # configuration file. This is important because configuration + # files are being used for setting render-from priorities. + local CONFIGURATION_LINES=$(cat ${CONFIGURATION_FILE} \ + | egrep -v '^#' \ + | egrep -v '^[[:space:]]*$' \ + | sed -r -n "/^\[${CONFIGURATION_SECTION}\][[:space:]]*$/,/^\[/p" \ + | egrep -v '^\[' \ + | egrep "^${CONFIGURATION_OPTION}") + + # Output value related to variable name. + echo "${CONFIGURATION_LINES}" + +} diff --git a/Scripts/tcar_getConfigSectionNames.sh b/Scripts/tcar_getConfigSectionNames.sh new file mode 100755 index 0000000..b573dd7 --- /dev/null +++ b/Scripts/tcar_getConfigSectionNames.sh @@ -0,0 +1,50 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way section names are retrieved from configuration +# files. Once section names are retrieved they are printed to standard +# output for further processing. +function tcar_getConfigSectionNames { + + # Define absolute path to configuration file we want to retrieve + # section names from. + local CONFIGURATION_FILE=${1} + + # Verify existence of configuration file. + tcar_checkFiles -ef ${CONFIGURATION_FILE} + + # Define regular expression pattern used to retrieve section names + # from configuration files. Don't permit any regular expression + # meta-character either. + local CONFIGURATION_SECTION_REGEX='^\[[[:alnum:]_.-]+\][[:space:]]*$' + + # Output all section names without brackets, one per line. Don't + # permit any kind of expansion here. Section names are used as + # reference to retrieve information from configuration file, + # expanding them would create different points of verifications. + egrep ${CONFIGURATION_SECTION_REGEX} ${CONFIGURATION_FILE} \ + | sed -r 's,\[(.+)\],\1,' + +} diff --git a/Scripts/tcar_getConfigValue.sh b/Scripts/tcar_getConfigValue.sh new file mode 100755 index 0000000..91444c0 --- /dev/null +++ b/Scripts/tcar_getConfigValue.sh @@ -0,0 +1,50 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way configuration values are retrieved from +# configuration files. As arguments, the configuration file absolute +# path, the configuration section name, and the configuration option +# name must be provided. +function tcar_getConfigValue { + + local CONFIGURATION_FILE="${1}" + + local CONFIGURATION_SECTION="${2}" + + local CONFIGURATION_OPTION="${3}" + + local CONFIGURATION_LINES=$(tcar_getConfigLines \ + "${CONFIGURATION_FILE}" "${CONFIGURATION_SECTION}" "${CONFIGURATION_OPTION}") + + for CONFIGURATION_LINE in "${CONFIGURATION_LINES}";do + + local CONFIGURATION_VALUE=$(echo "${CONFIGURATION_LINE}" \ + | cut -d= -f2- | sed -r -e 's/"//g' -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//') + + eval echo ${CONFIGURATION_VALUE} + + done + +} diff --git a/Scripts/tcar_getFileExtension.sh b/Scripts/tcar_getFileExtension.sh new file mode 100755 index 0000000..e2d9f77 --- /dev/null +++ b/Scripts/tcar_getFileExtension.sh @@ -0,0 +1,31 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Retrieve the extension of a file. +function tcar_getFileExtension { + + basename ${1} | sed -r 's/.+\.([[:alnum:]]+)$/\1/' + +} diff --git a/Scripts/tcar_getFileName.sh b/Scripts/tcar_getFileName.sh new file mode 100755 index 0000000..68f42ef --- /dev/null +++ b/Scripts/tcar_getFileName.sh @@ -0,0 +1,31 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Retrieve the name of a file. +function tcar_getFileName { + + basename ${1} | sed -r 's/\.([[:alnum:]]+)$//' + +} diff --git a/Scripts/tcar_getFilesList.sh b/Scripts/tcar_getFilesList.sh new file mode 100755 index 0000000..ee7f304 --- /dev/null +++ b/Scripts/tcar_getFilesList.sh @@ -0,0 +1,97 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way list of files are built inside tcar.sh script. +# This function outputs a sorted and unique list of files based on the +# options and locations passed as argument. +function tcar_getFilesList { + + # Initialize pattern used to reduce the find output. + local PATTERN="${TCAR_FLAG_FILTER}" + + # Initialize options used with find command. + local OPTIONS='' + + OPTIND=1 + while getopts "p:,a:,i:,t:,u:" OPTION "${@}"; do + + case "${OPTION}" in + p ) + PATTERN="${OPTARG}" + ;; + a ) + OPTIONS="${OPTIONS} -maxdepth ${OPTARG}" + ;; + i ) + OPTIONS="${OPTIONS} -mindepth ${OPTARG}" + ;; + t ) + OPTIONS="${OPTIONS} -type ${OPTARG}" + ;; + u ) + OPTIONS="${OPTIONS} -uid ${OPTARG}" + ;; + esac + + done + + # Clean up positional parameters to reflect the fact that options + # have been processed already. + shift $(( ${OPTIND} - 1 )) + + # At this point all options arguments have been processed and + # removed from positional parameters. Only non-option arguments + # remain so we use them as source location for find command to + # look files for. + + # Verify that locations does exist. + tcar_checkFiles -e ${@} + + # Redefine pattern as regular expression. When we use regular + # expressions with find, regular expressions are evaluated against + # the whole file path. This way, when the regular expression is + # specified, we need to build it in a way that matches the whole + # path we are using. Doing so, every time we pass the `--filter' + # option in the command-line could be a tedious task. Instead, in + # the sake of reducing some typing, we prepare the regular + # expression here to match the whole path using the regular + # expression provided by the user as pattern. Do not use locations + # as part of regular expression so it could be possible to use + # path expansion. Using path expansion reduce the amount of + # places to find out things and so the time required to finish the + # task. + # + # Don't do such path expansion here. Instead, do it when you call + # this function. Otherwise you would be prohibiting the + # application of exact patterns. + #PATTERN="^/.*${PATTERN}$" + + # Define list of files to process. At this point we cannot verify + # whether the location is a directory or a file since path + # expansion could be introduced to it. The best we can do is + # verifying exit status and go on. + find ${@} -regextype posix-egrep ${OPTIONS} -regex "${PATTERN}" | sort | uniq + +} diff --git a/Scripts/tcar_getPathComponent.sh b/Scripts/tcar_getPathComponent.sh new file mode 100755 index 0000000..eb4a71d --- /dev/null +++ b/Scripts/tcar_getPathComponent.sh @@ -0,0 +1,125 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way directory structures are organized inside the +# working copy of CentOS Artwork Repository. You can use this function +# to retrieve information from paths (e.g., releases, architectures +# and theme artistic motifs) or the patterns used to build the paths. +function tcar_getPathComponent { + + # Define release pattern. + local VERSION="(([[:digit:]]+)(\.([[:digit:]]+))?)" + + # Define architecture pattern. Make it match the architectures the + # CentOS distribution is able to be installed on. + local ARCHITECTURE="(i386|x86_64)" + + # Define regular expression pattern that match the theme artistic + # motif component inside the path strings. + local THEME_MOTIF="Themes/Motifs/(([[:alnum:]]+)/(${VERSION}))" + + # Define location we want to apply verifications to. + local LOCATION=${1} + + # Remove location from positional parameters, so only the option + # remain. + shift 1 + + # Look for options passed through positional parameters. + while true;do + + case "${1}" in + + --release ) + echo "${LOCATION}" | egrep "${VERSION}" | sed -r "s!.*/${VERSION}/.*!\1!" + shift 1 + break + ;; + + --release-major ) + echo "${LOCATION}" | egrep "${VERSION}" | sed -r "s!.*/${VERSION}/.*!\2!" + shift 1 + break + ;; + + --release-minor ) + echo "${LOCATION}" | egrep "${VERSION}" | sed -r "s!.*/${VERSION}/.*!\4!" + shift 1 + break + ;; + + --release-pattern ) + echo "${VERSION}" + shift 1 + break + ;; + + --architecture ) + echo "${LOCATION}" | egrep "${ARCHITECTURE}" | sed -r "s!${ARCHITECTURE}!\1!" + shift 1 + break + ;; + + --architecture-pattern ) + echo "${ARCHITECTURE}" + shift 1 + break + ;; + + --motif ) + echo "${LOCATION}" | egrep "${THEME_MOTIF}" | sed -r "s!.*${THEME_MOTIF}.*!\1!" + shift 1 + break + ;; + + --motif-name ) + echo "${LOCATION}" | egrep "${THEME_MOTIF}" | sed -r "s!.*${THEME_MOTIF}.*!\2!" + shift 1 + break + ;; + + --motif-version ) + echo "${LOCATION}" | egrep "${THEME_MOTIF}" | sed -r "s!.*${THEME_MOTIF}.*!\3!" + shift 1 + break + ;; + + --motif-pattern ) + echo "${THEME_MOTIF}" + shift 1 + break + ;; + + --repo-dir ) + echo "${LOCATION}" | sed "s,${TCAR_USER_WRKDIR}/,," + shift 1 + break + ;; + + esac + + done + +} diff --git a/Scripts/tcar_getRepoName.sh b/Scripts/tcar_getRepoName.sh new file mode 100755 index 0000000..144c29a --- /dev/null +++ b/Scripts/tcar_getRepoName.sh @@ -0,0 +1,134 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize files and directories name convection inside the working +# copy of CentOS Artwork Repository. As convection, regular files are +# written in lower-case and directories are written capitalized. Use +# this function to sanitate the name of regular files and directories +# on paths you work with. +function tcar_getRepoName { + + # Define the name we want to apply verifications to. + local NAME="${1}" + + # Avoid using options as it were names. When name value is empty + # but an option is provided, the option becomes the first + # positional argument and is evaluated as it were a name which is + # something we need to prevent from happening. + if [[ ${NAME} =~ '^-' ]];then + return + fi + + # Look for options passed through positional parameters. + case "${2}" in + + -f|--basename ) + + # Reduce the path passed to use just the non-directory + # part of it (i.e., the last component in the path; _not_ + # the last "real" directory in the path). + NAME=$(basename ${NAME}) + + # Clean value. + NAME=$(echo ${NAME} \ + | tr -s ' ' '_' \ + | tr '[:upper:]' '[:lower:]') + ;; + + -d|--dirname ) + + local DIR='' + local DIRS='' + local CLEANDIRS='' + local PREFIXDIR='' + + # In order to sanitate each directory in a path, it is + # required to break off the path string so each component + # can be worked out individually and later combine them + # back to create a clean path string. + + # Reduce path information passed to use the directory part + # of it only. Of course, this is applied if there is a + # directory part in the path. Assuming there is no + # directory part but a non-empty value in the path, use + # that value as directory part and clean it up. + if [[ ${NAME} =~ '.+/.+' ]];then + + # When path information is reduced, we need to + # consider that absolute paths contain some + # directories outside the working copy directory + # structure that shouldn't be sanitized (e.g., /home, + # /home/centos, /home/centos/artwork, + # /home/centos/artwork/turnk, trunk, etc.) So, we keep + # them unchanged for later use. + PREFIXDIR=$(echo ${NAME} \ + | sed -r "s,^((${TCAR_USER_WRKDIR}/)?(trunk|branches|tags)/)?.+$,\1,") + + # ... and remove them from the path information we do + # want to sanitate. + DIRS=$(dirname "${NAME}" \ + | sed -r "s!^${PREFIXDIR}!!" \ + | tr '/' ' ') + + else + + # At this point, there is not directory part in the + # information passed, so use the value passed as + # directory part as such. + DIRS=${NAME} + + fi + + for DIR in ${DIRS};do + + # Sanitate directory component. + if [[ ${DIR} =~ '^[a-z]' ]];then + DIR=$(echo ${DIR} \ + | tr -s ' ' '_' \ + | tr '[:upper:]' '[:lower:]' \ + | sed -r 's/^([[:alpha:]])/\u\1/') + fi + + # Rebuild path using sanitized values. + CLEANDIRS="${CLEANDIRS}/${DIR}" + + done + + # Redefine path using sanitized values. + NAME=$(echo ${CLEANDIRS} | sed -r "s!^/!!") + + # Add prefix directory information to sanitate path + # information. + if [[ "${PREFIXDIR}" != '' ]];then + NAME=${PREFIXDIR}${NAME} + fi + ;; + + esac + + # Print out the clean path string. + echo ${NAME} + +} diff --git a/Scripts/tcar_getTemporalFile.sh b/Scripts/tcar_getTemporalFile.sh new file mode 100755 index 0000000..557b46d --- /dev/null +++ b/Scripts/tcar_getTemporalFile.sh @@ -0,0 +1,52 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Output the absolute path you need to use to create temporal files to +# standard output. Use this function whenever you need to create new +# temporal files inside tcar.sh script. +function tcar_getTemporalFile { + + # Reset text domain locally, in order to prevent this function + # from using the last text domain definition. By default all + # common functions do use the same MO file. + local TEXTDOMAIN="${TCAR_SCRIPT_NAME}" + + # Define base name for temporal file. This is required when svg + # instances are created previous to be parsed by inkscape in order + # to be exported as png. In such cases .svg file extension is + # required in order to avoid complains from inkscape. + local FILENAME="${RANDOM}${RANDOM}-$(tcar_getRepoName ${1} -f)" + + # Check default base name for temporal file, it can't be an empty + # value. + if [[ -z "${FILENAME}" ]];then + tcar_printMessage "`gettext "The first argument cannot be empty."`" --as-error-line + fi + + # Define absolute path for temporal file and send it out to + # standard output. + echo "${TCAR_SCRIPT_TEMPDIR}/${FILENAME}" + +} diff --git a/Scripts/tcar_printCaller.sh b/Scripts/tcar_printCaller.sh new file mode 100755 index 0000000..7fd0c16 --- /dev/null +++ b/Scripts/tcar_printCaller.sh @@ -0,0 +1,55 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way caller information is retrieved. +function tcar_printCaller { + + local EXPR=${1} + local OPTS=${2} + + case ${OPTS} in + + --line ) + caller ${EXPR} | gawk '{ print $1 }' + ;; + + --name ) + caller ${EXPR} | gawk '{ print $2 }' + ;; + + --path ) + caller ${EXPR} | gawk '{ print $3 }' + ;; + + * ) + # Define where the error was originated inside the + # tcar.sh script. Print out the function name and + # line from the caller. + caller ${EXPR} | gawk '{ print $2 " L." $1 }' + ;; + + esac + +} diff --git a/Scripts/tcar_printCopyrightInfo.sh b/Scripts/tcar_printCopyrightInfo.sh new file mode 100755 index 0000000..54eb28e --- /dev/null +++ b/Scripts/tcar_printCopyrightInfo.sh @@ -0,0 +1,133 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the copyright information printed on content produced by +# tcar.sh script. +# +# As far as I understand, the copyright exists to make people create +# more. The copyright gives creators the legal power over their +# creations and so the freedom to distribute them under the ethical +# terms the creator considers better. At this moment I don't feel +# very confident about this legal affairs and their legal +# implications, but I need to decide what copyright information the +# tcar.sh script will print out when someone request information about +# it. So, in that sake, I am using The CentOS Artwork SIG as +# copyright holder and the GNU Public License, version 2 or any later, +# for software distribution. +function tcar_printCopyrightInfo { + + # Reset text domain locally, in order to prevent this function + # from using the last text domain definition. By default all + # common functions do use the same MO file. + local TEXTDOMAIN="${TCAR_SCRIPT_NAME}" + + case "${1}" in + + --license ) + + # Print the license name. + echo "`gettext "Creative Common Attribution-ShareAlike 3.0 License"`" + ;; + + --license-url ) + + # Print the url related to license name. + tcar_printUrl --cc-sharealike + ;; + + --first-year ) + + # The former year when I (as collaborator of The CentOS + # Project) started to consolidate The CentOS Project + # Corporate Visual Identity through the CentOS Artwork + # Repository. + echo '2009' + ;; + + --year|--last-year) + + # The software release year. + echo 2014 + ;; + + --years-range ) + + local FIRST_YEAR=$(tcar_printCopyrightInfo --first-year) + local LAST_YEAR=$(tcar_printCopyrightInfo --last-year) + echo "${FIRST_YEAR}-${LAST_YEAR}" + ;; + + --years-list ) + + local FIRST_YEAR=$(tcar_printCopyrightInfo --first-year) + local LAST_YEAR=$(tcar_printCopyrightInfo --last-year) + + # Define full copyright year string based on first and + # last year. + local FULL_YEAR=$(\ + while [[ ${FIRST_YEAR} -le ${LAST_YEAR} ]];do + echo -n "${FIRST_YEAR}, " + FIRST_YEAR=$((${FIRST_YEAR} + 1)) + done) + + # Prepare full copyright year string and print it out. + echo "${FULL_YEAR}" | sed 's!, *$!!' + ;; + + --holder ) + + # Print tcar.sh script default copyright holder. Be + # pragmatic about this information, please. The CentOS + # Project exists to produce The CentOS Distribution, not + # tcar.sh script. Nevertheless, The CentOS Artwork SIG is + # an organizational unit of The CentOS Project which is + # focused on producing The CentOS Project corporate visual + # identity, by means of The CentOS Artwork Repository. + # The tcar.sh script automates frequent tasks inside The + # CentOS Artwork Repository so, based on these + # considerations, the copyright holder of the tcar.sh + # script is "closer" to be The CentOS Artwork SIG than it + # would be The CentOS Project. These are the logical + # choosing ideas behind the copyright holder of tcar.sh + # script. + echo "`gettext "The CentOS Artwork SIG"`" + ;; + + --holder-predicate ) + + local HOLDER=$(tcar_printCopyrightInfo --holder) + echo "${HOLDER}. `gettext "All rights reserved."`" + ;; + + * ) + + local YEAR=$(tcar_printCopyrightInfo --last-year) + local HOLDER=$(tcar_printCopyrightInfo --holder) + echo "Copyright © ${YEAR} ${HOLDER}" + ;; + + esac + +} diff --git a/Scripts/tcar_printFile.sh b/Scripts/tcar_printFile.sh new file mode 100755 index 0000000..3502656 --- /dev/null +++ b/Scripts/tcar_printFile.sh @@ -0,0 +1,45 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way files are concatenated inside tcar.sh script. +function tcar_printFile { + + # Define absolute path to file you want to print. Take into + # consideration that this file might be out of the repository + # (e.g., it would be a temporal file stored under + # /tmp/tcar-XXXXXX/ directory). + local FILE="${1}" + + tcar_checkFiles -ef ${FILE} + + if [[ $(/usr/bin/file -b -i ${FILE}) =~ '^application/x-gzip$' ]];then + /bin/zcat ${FILE} + elif [[ $(/usr/bin/file -b -i ${FILE}) =~ '^application/x-bzip2$' ]];then + /bin/bzcat ${FILE} + else + /bin/cat ${FILE} + fi + +} diff --git a/Scripts/tcar_printHelp.sh b/Scripts/tcar_printHelp.sh new file mode 100755 index 0000000..3301eb5 --- /dev/null +++ b/Scripts/tcar_printHelp.sh @@ -0,0 +1,54 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way tcar.sh script prints help about itself. +function tcar_printHelp { + + # Retrieve the man page name. This is the file name you want to retrieve + # documentation for. This value is optional. When it is not passed, the + # module name is used. + local TCAR_MANPAGE_NAME="${1:-${TCAR_MODULE_NAME}}" + + # When the module name has not been set and the tcar_printHelp + # function is called from tcar.sh file, the page name come + # with with --help as opening string and probably as + # --help=filename.sh. In the first case it prints the script + # documentation. In the second case it prints documentation for + # the file specified. + if [[ -z ${TCAR_MODULE_NAME} ]];then + if [[ ${TCAR_MANPAGE_NAME} =~ '^--help=[[:alnum:]_-.]+' ]];then + TCAR_MANPAGE_NAME=$(echo ${TCAR_MANPAGE_NAME} | cut -d'=' -f2) + else + TCAR_MANPAGE_NAME=${TCAR_SCRIPT_NAME} + fi + fi + + # Print requested documentation. + /usr/bin/man -M ${TCAR_SCRIPT_DIR_MANUALS}:${TCAR_MODULE_DIR_MANUALS}/Final "${TCAR_MANPAGE_NAME}" + + # Finish script execution successfully. + exit 0 + +} diff --git a/Scripts/tcar_printMailingList.sh b/Scripts/tcar_printMailingList.sh new file mode 100755 index 0000000..59f6104 --- /dev/null +++ b/Scripts/tcar_printMailingList.sh @@ -0,0 +1,76 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way mailing list addresses are printed on content +# produced by tcar.sh script. +function tcar_printMailingList { + + local MAILADDRS='' + + # Define short options. + local ARGSS='' + + # Define long options. + local ARGSL='as-html-link:,docs' + + # Initialize arguments with an empty value and set it as local + # variable to this function scope. Doing this is very important to + # avoid any clash with higher execution environments. + local TCAR_MODULE_ARGUMENT='' + + # Process all arguments currently available in this function + # environment. If either ARGSS or ARGSL local variables have been + # defined, argument processing goes through getopt for validation. + tcar_setModuleArguments "${@}" + + # Redefine positional parameters using TCAR_MODULE_ARGUMENT variable. + eval set -- "${TCAR_MODULE_ARGUMENT}" + + # Look for options passed through command-line. + while true; do + case "${1}" in + + --docs ) + MAILADDRS="${TCAR_BRAND}-docs@$(tcar_printUrl --domain)" + shift 1 + ;; + + --as-html-link ) + MAILADDRS="${2}" + shift 2 + ;; + + -- ) + + shift 1 + break + ;; + esac + done + + # Print mail address. + echo "${MAILADDRS}" + +} diff --git a/Scripts/tcar_printMessage.sh b/Scripts/tcar_printMessage.sh new file mode 100755 index 0000000..c60bb98 --- /dev/null +++ b/Scripts/tcar_printMessage.sh @@ -0,0 +1,303 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way messages are printed by tcar.sh script. +function tcar_printMessage { + + # Reset text domain locally, in order to prevent this function + # from using the last text domain definition. By default all + # common functions do use the same MO file. + local TEXTDOMAIN="${TCAR_SCRIPT_NAME}" + + local MESSAGE="${1}" + local FORMAT="${2}" + + # Verify message variable, it cannot have an empty value. + if [[ -z ${MESSAGE} ]];then + tcar_printMessage "`gettext "The message cannot be empty."`" --as-error-line + fi + + # Define message horizontal width. This is the max number of + # horizontal characters the message will use to be displayed on + # the screen. + local MESSAGE_WIDTH=66 + + # Remove empty spaces from message. + #MESSAGE=$(printf %s "${MESSAGE}" | sed -r -e 's!^[[:space:]]+!!') + + # Print messages that will always be printed no matter what value + # the TCAR_FLAG_QUIET variable has. + case "${FORMAT}" in + + --as-stdout-line* ) + + local MARGIN_LEFT=15 + if [[ ${FORMAT} =~ '--as-stdout-line=[[:digit:]]+' ]];then + MARGIN_LEFT=$(echo ${FORMAT} | cut -d'=' -f2) + fi + + # Default printing format. This is the format used when no + # other specification is passed to this function. As + # convenience, we transform absolute paths into relative + # paths in order to free horizontal space on final output + # messages. + printf %s "${MESSAGE}" | sed -r \ + -e "s!${TCAR_BASEDIR}/!!g" \ + -e "s!> /!> !g" \ + -e "s!/{2,}!/!g" \ + | gawk 'BEGIN { FS=": " } + { + if ( $0 ~ /^-+$/ ) + print $0 + else + printf "%-'${MARGIN_LEFT}'s\t%s\n", $1, $2 + } + END {}' + ;; + + --as-error-line ) + + # Build the error trail. This is very useful for tracking + # the error down. + tcar_printMessage '-' --as-separator-line + tcar_printMessage "${FUNCNAME[*]}" --as-tree-line + + # Build the error message. + tcar_printMessage '-' --as-separator-line + tcar_printMessage "$(tcar_printCaller 1) ${MESSAGE}" --as-stderr-line + tcar_printMessage '-' --as-separator-line + + # Finish script execution with exit status 1 (SIGHUP) to + # imply the script finished because an error. We are + # using this as convention to finish the script execution. + # So, don't remove the following line, please. + exit 1 + ;; + + --as-debugger-line ) + if [[ ${TCAR_FLAG_DEBUG} == 'true' ]];then + tcar_printMessage "$(date +"%c") ${MESSAGE}" --as-stdout-line=60 + else + return + fi + ;; + + --as-tree-line ) + local NAME + local -a FN + for NAME in ${MESSAGE};do + FN[++((${#FN[*]}))]=${NAME} + done + local COUNT=$(( ${#FN[*]} - 2 )) + local SEPARATOR='`--' + local SPACES=0 + echo "${TCAR_SCRIPT_BASEDIR}/${TCAR_SCRIPT_NAME}" 1>&2 + while [[ ${COUNT} -gt 0 ]];do + if [[ ${COUNT} -eq $(( ${#FN[*]} - 2 )) ]];then + echo ${SEPARATOR} ${FN[${COUNT}]} 1>&2 + else + echo ${FN[${COUNT}]} \ + | gawk '{ printf "%'${SPACES}'s%s %s\n", "", "'${SEPARATOR}'", $1 }' 1>&2 + fi + COUNT=$((${COUNT} - 1)) + SPACES=$((${SPACES} + 4)) + done + ;; + + --as-toknowmore-line ) + tcar_printMessage "`gettext "To know more, run"` ${TCAR_SCRIPT_NAME} ${MESSAGE} --help" --as-stderr-line + ;; + + --as-yesornorequest-line ) + + # Define positive answer. + local Y="`gettext "yes"`" + + # Define negative answer. + local N="`gettext "no"`" + + # Define default answer. + local ANSWER=${N} + + if [[ ${TCAR_FLAG_YES} == 'true' ]];then + + ANSWER=${Y} + + else + + # Print the question to standard error. + tcar_printMessage "${MESSAGE} [${Y}/${N}]" --as-request-line + + # Redefine default answer based on user's input. + read ANSWER + + fi + + # Verify user's answer. Only positive answer let the + # script flow to continue. Otherwise, if something + # different from positive answer is passed, the script + # terminates its execution immediately. + if [[ ! ${ANSWER} =~ "^${Y}" ]];then + exit + fi + ;; + + --as-selection-line ) + # Create selection based on message. + local NAME='' + select NAME in ${MESSAGE};do + echo ${NAME} + break + done + ;; + + --as-response-line ) + tcar_printMessage "--> ${MESSAGE}" --as-stderr-line + ;; + + --as-request-line ) + tcar_printMessage "${MESSAGE}:\040" --as-notrailingnew-line + ;; + + --as-notrailingnew-line ) + echo -e -n "${MESSAGE}" | sed -r \ + -e "s!${TCAR_BASEDIR}/!!g" 1>&2 + ;; + + --as-stderr-line ) + echo "${MESSAGE}" | sed -r \ + -e "s!${TCAR_BASEDIR}/!!g" 1>&2 + ;; + + esac + + # Verify quiet option. The quiet option controls whether messages + # are printed or not. + if [[ "${TCAR_FLAG_QUIET}" == 'true' ]];then + return + fi + + # Print messages that will be printed only when the TCAR_FLAG_QUIET + # variable is provided to tcar.sh script. + case "${FORMAT}" in + + --as-separator-line ) + + # Build the separator line. + MESSAGE=$(\ + until [[ ${MESSAGE_WIDTH} -eq 0 ]];do + echo -n "$(echo ${MESSAGE} | sed -r 's!(.).*!\1!')" + MESSAGE_WIDTH=$((${MESSAGE_WIDTH} - 1)) + done) + + # Draw the separator line. + echo "${MESSAGE}" 1>&2 + ;; + + --as-banner-line ) + tcar_printMessage '-' --as-separator-line + tcar_printMessage "${MESSAGE}" --as-stdout-line + tcar_printMessage '-' --as-separator-line + ;; + + --as-processing-line ) + tcar_printMessage "`gettext "Processing"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-cropping-line ) + tcar_printMessage "`gettext "Cropping from"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-tuningup-line ) + tcar_printMessage "`gettext "Tuning-up"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-checking-line ) + tcar_printMessage "`gettext "Checking"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-combining-line ) + tcar_printMessage "`gettext "Combining"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-editing-line ) + tcar_printMessage "`gettext "Editing"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-creating-line | --as-updating-line ) + if [[ -a "${MESSAGE}" ]];then + tcar_printMessage "`gettext "Updating"`: ${MESSAGE}" --as-stdout-line + else + tcar_printMessage "`gettext "Creating"`: ${MESSAGE}" --as-stdout-line + fi + ;; + + --as-deleting-line ) + tcar_printMessage "`gettext "Deleting"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-reading-line ) + tcar_printMessage "`gettext "Reading"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-savedas-line ) + tcar_printMessage "`gettext "Saved as"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-linkto-line ) + tcar_printMessage "`gettext "Linked to"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-movedto-line ) + tcar_printMessage "`gettext "Moved to"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-translation-line ) + tcar_printMessage "`gettext "Translation"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-translating-line ) + tcar_printMessage "`gettext "Translating"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-validating-line ) + tcar_printMessage "`gettext "Validating"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-template-line ) + tcar_printMessage "`gettext "Template"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-configuration-line ) + tcar_printMessage "`gettext "Configuration"`: ${MESSAGE}" --as-stdout-line + ;; + + --as-palette-line ) + tcar_printMessage "`gettext "Palette"`: ${MESSAGE}" --as-stdout-line + ;; + + esac + +} diff --git a/Scripts/tcar_printUrl.sh b/Scripts/tcar_printUrl.sh new file mode 100755 index 0000000..c2abad4 --- /dev/null +++ b/Scripts/tcar_printUrl.sh @@ -0,0 +1,149 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way URLs are printed by tcar.sh script. This +# function describes the domain organization of The CentOS Project +# through its URLs and provides a way to print them out when needed. +function tcar_printUrl { + + local URL='' + + # Define short options. + local ARGSS='' + + # Define long options. + local ARGSL='domain,home,lists,wiki,forums,bugs,planet,docs,mirrors,projects,svn,trac,irc,cc-sharealike,with-locale,as-html-link' + + # Initialize arguments with an empty value and set it as local + # variable to this function scope. Doing this is very important to + # avoid any clash with higher execution environments. + local TCAR_MODULE_ARGUMENT='' + + # Process all arguments currently available in this function + # environment. If either ARGSS or ARGSL local variables have been + # defined, argument processing goes through getopt for validation. + tcar_setModuleArguments "${@}" + + # Redefine positional parameters using TCAR_MODULE_ARGUMENT variable. + eval set -- "${TCAR_MODULE_ARGUMENT}" + + # Look for options passed through command-line. + while true; do + case "${1}" in + + --domain ) + URL="centos.org" + shift 1 + ;; + + --home ) + URL="http://www.$(tcar_printUrl --domain)/" + shift 1 + ;; + + --lists ) + URL="http://lists.$(tcar_printUrl --domain)/" + shift 1 + ;; + + --wiki ) + URL="http://wiki.$(tcar_printUrl --domain)/" + shift 1 + ;; + + --forums ) + URL="http://forums.$(tcar_printUrl --domain)/" + shift 1 + ;; + + --bugs ) + URL="http://bugs.$(tcar_printUrl --domain)/" + shift 1 + ;; + + --projects ) + URL="https://projects.$(tcar_printUrl --domain)/" + shift 1 + ;; + + --svn ) + URL="$(tcar_printUrl --projects)svn/" + shift 1 + ;; + + --trac ) + URL="$(tcar_printUrl --projects)trac/" + shift 1 + ;; + + --planet ) + URL="http://planet.$(tcar_printUrl --domain)/" + shift 1 + ;; + + --docs ) + URL="http://docs.$(tcar_printUrl --domain)/" + shift 1 + ;; + + --mirrors ) + URL="http://mirrors.$(tcar_printUrl --domain)/" + shift 1 + ;; + + --irc ) + URL="http://$(tcar_printUrl --home)modules/tinycontent/index.php?id=8" + shift 1 + ;; + + --cc-sharealike ) + URL="http://creativecommons.org/licenses/by-sa/3.0/" + shift 1 + ;; + + --with-locale ) + if [[ ! ${LANG} =~ '^en' ]];then + URL="${URL}${TCAR_SCRIPT_LANG_LL}/" + fi + shift 1 + ;; + + --as-html-link ) + URL="${URL}" + shift 1 + ;; + + -- ) + + shift 1 + break + ;; + esac + done + + # Print Url. + echo "${URL}" + +} diff --git a/Scripts/tcar_printUsage.sh b/Scripts/tcar_printUsage.sh new file mode 100755 index 0000000..c35b1dd --- /dev/null +++ b/Scripts/tcar_printUsage.sh @@ -0,0 +1,44 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Describe options and most frequently used commands related to tcar +# script. +function tcar_printUsage { + + tcar_printMessage "`gettext "Usage"`: tcar [--version] [--help] [--filter=]" --as-stdout-line=5 + tcar_printMessage ": [--debug] [--yes] [--quiet] " --as-stdout-line=5 + echo + + tcar_printMessage "`gettext "The most commonly used tcar commands are:"`" --as-stdout-line + tcar_printMessage " prepare: `gettext "..."`" --as-stdout-line + tcar_printMessage " render: `gettext "..."`" --as-stdout-line + tcar_printMessage " locale: `gettext "..."`" --as-stdout-line + echo + + tcar_printMessage "See 'tcar help ' for more information on a specific command." --as-stdout-line + + exit 0 + +} diff --git a/Scripts/tcar_printVersion.sh b/Scripts/tcar_printVersion.sh new file mode 100755 index 0000000..db1896d --- /dev/null +++ b/Scripts/tcar_printVersion.sh @@ -0,0 +1,40 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Print tcar version and license information. +function tcar_printVersion { + + # Reset text domain locally, in order to prevent this function + # from using the last text domain definition. By default all + # common functions do use the same MO file. + local TEXTDOMAIN="${TCAR_SCRIPT_NAME}" + + tcar_printMessage "`eval_gettext "\\\$TCAR_SCRIPT_NAME version \\\$TCAR_SCRIPT_VERSION"`" --as-stdout-line + tcar_printCopyrightInfo + tcar_printMessage "`eval_gettext "\\\$TCAR_SCRIPT_NAME comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of \\\$TCAR_SCRIPT_NAME under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING."`" --as-stdout-line | fold --width=66 --spaces + + exit 0 + +} diff --git a/Scripts/tcar_setModuleArguments.sh b/Scripts/tcar_setModuleArguments.sh new file mode 100755 index 0000000..02fffdb --- /dev/null +++ b/Scripts/tcar_setModuleArguments.sh @@ -0,0 +1,79 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Use getopt to process arguments passed to tcar.sh script. This +# function works with the following three environment variables: +# +# ARGSS +# Stores getopt short arguments definition. +# +# ARGSL +# Stores getopt long arguments definition. +# +# TCAR_MODULE_ARGUMENT +# Stores arguments passed to functions or command-line interface +# depending the context it is defined. +# +# These three variables are not defined in this function but the +# function environment you want to provide option parsing for, through +# getopt command. Using local definition for these three variables let +# you to nest option parsing inside different function-environment +# levels. +function tcar_setModuleArguments { + + # Reset text domain locally, in order to prevent this function + # from using the last text domain definition. By default all + # common functions do use the same MO file. + local TEXTDOMAIN="${TCAR_SCRIPT_NAME}" + + # Verify non-option arguments passed to command-line. If there + # isn't any or dot is provided, redefine the TCAR_MODULE_ARGUMENT + # variable to use the current location the tcar.sh script + # was called from. + if [[ -z "${TCAR_MODULE_ARGUMENT}" ]];then + TCAR_MODULE_ARGUMENT=${PWD} + fi + + # Verify presence of either short or long options in the + # environment. If they are present apply option validation through + # getopt. + if [[ ! -z ${ARGSS} ]] || [[ ! -z ${ARGSL} ]];then + + # Redefine positional parameters using TCAR_MODULE_ARGUMENT variable. + eval set -- "${TCAR_MODULE_ARGUMENT}" + + # Process positional parameters using getopt's option validation. + TCAR_MODULE_ARGUMENT=$(getopt -o "${ARGSS}" -l "${ARGSL}" \ + -n "${TCAR_SCRIPT_NAME} (${TCAR_MODULE_NAME})" -- "${@}") + + # Verify getopt's exit status and finish the script execution + # with an error message, if it failed. + if [[ $? -ne 0 ]];then + tcar_printMessage "`gettext "The argument verification failed."`" --as-error-line + fi + + fi + +} diff --git a/Scripts/tcar_setModuleEnvironment.sh b/Scripts/tcar_setModuleEnvironment.sh new file mode 100755 index 0000000..4bb49bb --- /dev/null +++ b/Scripts/tcar_setModuleEnvironment.sh @@ -0,0 +1,189 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Initiate module environments inside the tcar.sh script. +function tcar_setModuleEnvironment { + + local ARG_MODULE_NAME='' + local ARG_MODULE_TYPE='' + local ARG_MODULE_ARGS='' + + # Retrieve module's name and module's type from arguments passed + # through this function positional parameters. + OPTIND=1 + while getopts "m:,t:,g:" OPTION "${@}"; do + case "${OPTION}" in + m ) ARG_MODULE_NAME="${OPTARG}" ;; + t ) ARG_MODULE_TYPE="${OPTARG}" ;; + g ) ARG_MODULE_ARGS="${OPTARG} ${ARG_MODULE_ARGS}" ;; + esac + done + + # Clean up positional parameters to reflect the fact that options + # have been processed already. + shift $(( ${OPTIND} - 1 )) + + # Initialize module's global counter. + TCAR_MODULE_COUNT=${TCAR_MODULE_COUNT:-0} + + # When the last module in the chain of executed modules is the + # same module being currently executed, don't create a new + # position for it in the chain of modules. Instead, use the + # information it already has from its previous execution. In order + # for this to work, the current module must be executed as sibling + # module of other module or itself. + if [[ ${TCAR_MODULE_COUNT} -gt 0 ]];then + if [[ ${TCAR_MODULE_NAMES[((${TCAR_MODULE_COUNT} - 1))]} == ${ARG_MODULE_NAME} ]];then + if [[ ${ARG_MODULE_TYPE} == 'sibling' ]];then + tcar_printMessage '~~~~~~~~~~~~~~~~~~~~~~~~~> : '"${TCAR_MODULE_NAME} ${TCAR_MODULE_ARGUMENT}" --as-debugger-line + ${ARG_MODULE_NAME} ${ARG_MODULE_ARGS} ${@} + return + fi + fi + fi + + tcar_printMessage '=========================>: ['${TCAR_MODULE_COUNT}'] | '${FUNCNAME[1]} --as-debugger-line + + # Define module's base directory. This is the directory where the + # initialization script is stored in. + local TCAR_MODULE_BASEDIR=${TCAR_SCRIPT_MODULES_BASEDIR} + if [[ ${#TCAR_MODULE_BASEDIRS[*]} -gt 0 ]];then + if [[ ${ARG_MODULE_TYPE} == "parent" ]];then + TCAR_MODULE_BASEDIR=${TCAR_SCRIPT_MODULES_BASEDIR} + elif [[ ${ARG_MODULE_TYPE} == "sibling" ]];then + if [[ ${TCAR_MODULE_TYPES[((${TCAR_MODULE_COUNT} - 1 ))]} == 'sibling' ]];then + TCAR_MODULE_BASEDIR=${TCAR_MODULE_BASEDIRS[((${TCAR_MODULE_COUNT}-2))]} + else + TCAR_MODULE_BASEDIR=${TCAR_MODULE_BASEDIRS[((${TCAR_MODULE_COUNT}-1))]} + fi + else + TCAR_MODULE_BASEDIR=${TCAR_MODULE_BASEDIRS[${TCAR_MODULE_COUNT}]} + fi + fi + tcar_printMessage "TCAR_MODULE_BASEDIR : ${TCAR_MODULE_BASEDIR}" --as-debugger-line + + # Define module's name. + TCAR_MODULE_NAMES[${TCAR_MODULE_COUNT}]=$(tcar_getRepoName "${ARG_MODULE_NAME:-unknown}" "-f" | cut -d '-' -f1) + local TCAR_MODULE_NAME=${TCAR_MODULE_NAMES[${TCAR_MODULE_COUNT}]} + tcar_printMessage "TCAR_MODULE_NAME : [${TCAR_MODULE_COUNT}]=${TCAR_MODULE_NAME}" --as-debugger-line + + # Define module's type. + TCAR_MODULE_TYPES[${TCAR_MODULE_COUNT}]="${ARG_MODULE_TYPE:-parent}" + local TCAR_MODULE_TYPE=${TCAR_MODULE_TYPES[${TCAR_MODULE_COUNT}]} + tcar_printMessage "TCAR_MODULE_TYPE : ${TCAR_MODULE_TYPE}" --as-debugger-line + + # Define module's arguments. This variable is used in different + # module environments to pass positional parameters from one + # environment to another using local definitions. + TCAR_MODULE_ARGUMENTS[${TCAR_MODULE_COUNT}]="${ARG_MODULE_ARGS:-} ${@}" + local TCAR_MODULE_ARGUMENT=${TCAR_MODULE_ARGUMENTS[${TCAR_MODULE_COUNT}]} + tcar_printMessage "TCAR_MODULE_ARGUMENT : ${TCAR_MODULE_ARGUMENT}" --as-debugger-line + + # Check module's name possible values. + tcar_checkModuleName + + # Define module's directory. + TCAR_MODULE_DIRS[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_BASEDIR}/$(tcar_getRepoName "${TCAR_MODULE_NAME}" "-d") + local TCAR_MODULE_DIR=${TCAR_MODULE_DIRS[${TCAR_MODULE_COUNT}]} + tcar_printMessage "TCAR_MODULE_DIR : ${TCAR_MODULE_DIR}" --as-debugger-line + + # Define module's directories not reused from module's parent + # directory structure. + TCAR_MODULE_DIRS_MODULES[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIR}/Modules + local TCAR_MODULE_DIR_MODULES=${TCAR_MODULE_DIRS_MODULES[${TCAR_MODULE_COUNT}]} + tcar_printMessage "TCAR_MODULE_DIR_MODULES : ${TCAR_MODULE_DIR_MODULES}" --as-debugger-line + + TCAR_MODULE_DIRS_CONFIGS[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIR}/Configs + local TCAR_MODULE_DIR_CONFIGS=${TCAR_MODULE_DIRS_CONFIGS[${TCAR_MODULE_COUNT}]} + tcar_printMessage "TCAR_MODULE_DIR_CONFIGS : ${TCAR_MODULE_DIR_CONFIGS}" --as-debugger-line + + # Define module's directories reused from module's parent + # directory structure. + TCAR_MODULE_DIRS_MANUALS[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIRS[0]}/Manuals + local TCAR_MODULE_DIR_MANUALS=${TCAR_MODULE_DIRS_MANUALS[${TCAR_MODULE_COUNT}]} + tcar_printMessage "TCAR_MODULE_DIR_MANUALS : ${TCAR_MODULE_DIR_MANUALS}" --as-debugger-line + + TCAR_MODULE_DIRS_LOCALES[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIRS[0]}/Locales + local TCAR_MODULE_DIR_LOCALES=${TCAR_MODULE_DIRS_LOCALES[${TCAR_MODULE_COUNT}]} + tcar_printMessage "TCAR_MODULE_DIR_LOCALES : ${TCAR_MODULE_DIR_LOCALES}" --as-debugger-line + + # Define module's initialization file. + TCAR_MODULE_INIT_FILES[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIR}/${TCAR_MODULE_NAME}.sh + local TCAR_MODULE_INIT_FILE=${TCAR_MODULE_INIT_FILES[${TCAR_MODULE_COUNT}]} + tcar_printMessage "TCAR_MODULE_INIT_FILE : ${TCAR_MODULE_INIT_FILE}" --as-debugger-line + + # Define module's connection with their localization files. It is + # required that gettext-specific variables be defined locally, in + # order to implement per-module localization. + local TEXTDOMAIN=$(basename ${TCAR_MODULE_INIT_FILE}) + tcar_printMessage "TEXTDOMAIN: ${TEXTDOMAIN}" --as-debugger-line + + # Increment module's counter just before creating next module's + # base directory. + TCAR_MODULE_COUNT=$(( ${TCAR_MODULE_COUNT} + 1 )) + + # Define next module's base directory. + TCAR_MODULE_BASEDIRS[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIR_MODULES} + + # Check function script execution rights. + tcar_checkFiles -ex ${TCAR_MODULE_INIT_FILE} + + # Load module-specific (function) scripts into current execution + # environment. Keep the tcar_setModuleEnvironmentScripts function + # call after all variables and arguments definitions. + tcar_setModuleEnvironmentScripts + + # Execute module's initialization script with its arguments. + tcar_printMessage '-------------------------> : '"${TCAR_MODULE_NAME} ${TCAR_MODULE_ARGUMENT}" --as-debugger-line + ${TCAR_MODULE_NAME} ${TCAR_MODULE_ARGUMENT} + + # Unset module-specific environment. + tcar_printMessage '<------------------------- : '"${TCAR_MODULE_NAME} ${TCAR_MODULE_ARGUMENT}" --as-debugger-line + tcar_unsetModuleEnvironment + + # Decrement module counter just after unset unused module + # environments. + TCAR_MODULE_COUNT=$(( ${TCAR_MODULE_COUNT} - 1 )) + + # Unset array and non-array variables used in this function. + if [[ ${TCAR_MODULE_COUNT} -eq 0 ]];then + unset TCAR_MODULE_NAMES + unset TCAR_MODULE_BASEDIRS + unset TCAR_MODULE_DIRS + unset TCAR_MODULE_DIRS_MODULES + unset TCAR_MODULE_DIRS_MANUALS + unset TCAR_MODULE_DIRS_LOCALES + unset TCAR_MODULE_DIRS_CONFIGS + unset TCAR_MODULE_NAME + unset TCAR_MODULE_DIR + unset TCAR_MODULE_DIR_MODULES + unset TCAR_MODULE_DIR_MANUALS + unset TCAR_MODULE_DIR_LOCALES + unset TCAR_MODULE_DIR_CONFIGS + fi + + tcar_printMessage '<=========================: ['${TCAR_MODULE_COUNT}'] | '${FUNCNAME[1]} --as-debugger-line + +} diff --git a/Scripts/tcar_setModuleEnvironmentScripts.sh b/Scripts/tcar_setModuleEnvironmentScripts.sh new file mode 100755 index 0000000..550755e --- /dev/null +++ b/Scripts/tcar_setModuleEnvironmentScripts.sh @@ -0,0 +1,91 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the way specific functionalities are exported to tcar.sh +# script environment. +function tcar_setModuleEnvironmentScripts { + + # Reset text domain locally, in order to prevent this function + # from using the last text domain definition. By default all + # common functions do use the same MO file. + local TEXTDOMAIN="${TCAR_SCRIPT_NAME}" + + # Define the pattern used to retrieve function names from function + # files. + local FUNCTION_PATTERN="^function[[:space:]]+${TCAR_MODULE_NAME}(_[[:alnum:]]+)?[[:space:]]+{[[:space:]]*$" + + # Define the list of files. + local TCAR_MODULE_SCRIPT='' + local TCAR_MODULE_SCRIPTS="${TCAR_MODULE_INIT_FILE}" + if [[ -d ${TCAR_MODULE_DIR} ]];then + TCAR_MODULE_SCRIPTS="${TCAR_MODULE_SCRIPTS} + $(tcar_getFilesList \ + -p "${TCAR_MODULE_DIR}/${TCAR_MODULE_NAME}_[[:alnum:]]+\.sh$" \ + -t 'f' ${TCAR_MODULE_DIR})" + fi + + # Verify the list of files. If no function file exists for the + # location specified stop the script execution. Otherwise the + # script will surely try to execute a function that haven't been + # exported yet and report an error about it. + if [[ -z ${TCAR_MODULE_SCRIPTS} ]];then + tcar_printMessage "${FUNCNAME}: `gettext "No function file was found."`" --as-error-line + fi + + # Process the list of files. + for TCAR_MODULE_SCRIPT in ${TCAR_MODULE_SCRIPTS};do + + # Verify the execution rights for function file. + tcar_checkFiles -ex ${TCAR_MODULE_SCRIPT} + + # Retrieve the function's name from function's file. + local TCAR_MODULE_SCRIPT_FN=$(egrep "${FUNCTION_PATTERN}" ${TCAR_MODULE_SCRIPT} \ + | gawk '{ print $2 }') + + # Verify function's name. It cannot be an empty value. + if [[ -z "${TCAR_MODULE_SCRIPT_FN}" ]];then + tcar_printMessage "`gettext "No function definition found."`" --as-error-line + fi + + # Verify that function files have not been already exported. + # If they have been already exported don't export them again. + # Instead, continue with the next function file in the list. + declare -F | gawk '{ print $3 }' | egrep "^${TCAR_MODULE_SCRIPT}$" > /dev/null + if [[ $? -eq 0 ]];then + continue + fi + + # Initialize the function file. + . ${TCAR_MODULE_SCRIPT} + + # Export the function names inside the file to current shell + # script environment. + export -f ${TCAR_MODULE_SCRIPT_FN} + + tcar_printMessage "export -f : ${TCAR_MODULE_SCRIPT_FN}" --as-debugger-line + + done + +} diff --git a/Scripts/tcar_setTranslationMarkers.sh b/Scripts/tcar_setTranslationMarkers.sh new file mode 100755 index 0000000..fff45ce --- /dev/null +++ b/Scripts/tcar_setTranslationMarkers.sh @@ -0,0 +1,184 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize construction of translation markers and their related +# expansion. As convention, translation markers must be set inside +# source files (e.g., Docbook, Svg, etc.) and expanded inside temporal +# instances used to produce final contents. +function tcar_setTranslationMarkers { + + # Initialize variables. + local -a SRC + local -a DST + local COUNT=0 + local COUNTSRC=0 + local COUNTDST=0 + + # Define source location on which sed replacements take place. + local LOCATION="${1}" + + # Verify that source location does exist. + tcar_checkFiles -ef ${LOCATION} + + # Define copyright translation markers. + SRC[((++${#SRC[*]}))]='=COPYRIGHT_YEAR_FIRST=' + DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --first-year)" + SRC[((++${#SRC[*]}))]='=COPYRIGHT_YEAR(_LAST)?=' + DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --year)" + SRC[((++${#SRC[*]}))]='=COPYRIGHT_YEAR(S)?_LIST=' + DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --years-list)" + SRC[((++${#SRC[*]}))]='=COPYRIGHT_HOLDER=' + DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --holder)" + SRC[((++${#SRC[*]}))]='=COPYRIGHT_HOLDER_PREDICATE=' + DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --holder-predicate)" + + # Define license translation markers. + SRC[((++${#SRC[*]}))]='=LICENSE=' + DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --license)" + SRC[((++${#SRC[*]}))]='=LICENSE_URL=' + DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --license-url)" + + # Define theme translation markers. + SRC[((++${#SRC[*]}))]='=THEME=' + DST[((++${#DST[*]}))]="$(tcar_getPathComponent ${RENDER_TARGET} --motif)" + SRC[((++${#SRC[*]}))]='=THEMENAME=' + DST[((++${#DST[*]}))]="$(tcar_getPathComponent ${RENDER_TARGET} --motif-name)" + SRC[((++${#SRC[*]}))]='=THEMERELEASE=' + DST[((++${#DST[*]}))]="$(tcar_getPathComponent ${RENDER_TARGET} --motif-version)" + + # Define url translation markers. + SRC[((++${#SRC[*]}))]='=URL=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--home' '--with-locale') + SRC[((++${#SRC[*]}))]='=URL_WIKI=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--wiki' '--with-locale') + SRC[((++${#SRC[*]}))]='=URL_LISTS=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--lists' '--with-locale') + SRC[((++${#SRC[*]}))]='=URL_FORUMS=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--forums' '--with-locale') + SRC[((++${#SRC[*]}))]='=URL_MIRRORS=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--mirrors' '--with-locale') + SRC[((++${#SRC[*]}))]='=URL_DOCS=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--docs' '--with-locale') + SRC[((++${#SRC[*]}))]='=URL_PROJECTS=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--projects' '--with-locale') + SRC[((++${#SRC[*]}))]='=URL_BUGS=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--bugs' '--with-locale') + SRC[((++${#SRC[*]}))]='=URL_SVN=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--svn' '--with-locale') + SRC[((++${#SRC[*]}))]='=URL_TRAC=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--trac' '--with-locale') + SRC[((++${#SRC[*]}))]='=URL_PLANET=' + DST[((++${#DST[*]}))]=$(tcar_printUrl '--planet' '--with-locale') + + # Define release translation markers. + SRC[((++${#SRC[*]}))]='=RELEASE=' + DST[((++${#DST[*]}))]=${RELEASE} + SRC[((++${#SRC[*]}))]='=MAJOR_RELEASE=' + DST[((++${#DST[*]}))]=${MAJOR_RELEASE} + + # Define emails translation markers. + SRC[((++${#SRC[*]}))]='=MAIL_DOCS=' + DST[((++${#DST[*]}))]="$(tcar_printMailingList --docs)" + + # Define locale translation markers. + SRC[((++${#SRC[*]}))]='=LOCALE=' + DST[((++${#DST[*]}))]="${TCAR_SCRIPT_LANG_LC}" + SRC[((++${#SRC[*]}))]='=LOCALE_LL=' + DST[((++${#DST[*]}))]="${TCAR_SCRIPT_LANG_LL}" + SRC[((++${#SRC[*]}))]='=LOCALE_CC=' + DST[((++${#DST[*]}))]="${TCAR_SCRIPT_LANG_CC}" + + # Define domain translation markers for domains. + SRC[((++${#SRC[*]}))]='=DOMAIN_LL=' + if [[ ! ${TCAR_SCRIPT_LANG_LL} =~ '^en' ]];then + DST[((++${#DST[*]}))]="${TCAR_SCRIPT_LANG_LL}" + else + DST[((++${#DST[*]}))]="" + fi + + # Define repository translation markers. + SRC[((++${#SRC[*]}))]='=(REPO_TLDIR|REPO_HOME|TCAR_BASEDIR)=' + DST[((++${#DST[*]}))]="${TCAR_BASEDIR}" + + # Do replacement of nested translation markers. + while [[ ${COUNTDST} -lt ${#DST[@]} ]];do + + # Verify existence of translation markers. If there is no + # translation marker on replacement, continue with the next + # one in the list. + if [[ ! ${DST[${COUNTDST}]} =~ '=[A-Z_]+=' ]];then + # Increment destination counter. + COUNTDST=$((${COUNTDST} + 1)) + # The current replacement value doesn't have translation + # marker inside, so skip it and evaluate the next + # replacement value in the list. + continue + fi + + while [[ ${COUNTSRC} -lt ${#SRC[*]} ]];do + + # Update replacements. + DST[${COUNTDST}]=$(echo ${DST[${COUNTDST}]} \ + | sed -r "s!${SRC[${COUNTSRC}]}!${DST[${COUNTSRC}]}!g") + + # Increment source counter. + COUNTSRC=$((${COUNTSRC} + 1)) + + done + + # Reset source counter + COUNTSRC=0 + + # Increment destination counter. + COUNTDST=$((${COUNTDST} + 1)) + + done + + # Apply replacements for translation markers. + while [[ ${COUNT} -lt ${#SRC[*]} ]];do + + # Use sed to replace translation markers inside the design + # model instance. + sed -r -i "s!${SRC[${COUNT}]}!${DST[${COUNT}]}!g" ${LOCATION} + + # Increment counter. + COUNT=$((${COUNT} + 1)) + + done + + # Remove escaped character from translation markers. This is one + # of the reasons why translation marker should be expanded in + # source files instances not the source files themselves. + # Escaping translation markers provides a way of talking about + # them without expanding them. + sed -r -i 's/(=)\\([A-Z_]+=)/\1\2/g' ${LOCATION} + + # Unset specific translation markers and specific replacement + # variables in order to clean them up. Otherwise, undesired values + # may remain from one file to another. + unset SRC + unset DST + +} diff --git a/Scripts/tcar_terminateScriptExecution.sh b/Scripts/tcar_terminateScriptExecution.sh new file mode 100755 index 0000000..e0334a9 --- /dev/null +++ b/Scripts/tcar_terminateScriptExecution.sh @@ -0,0 +1,39 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Standardize the actions that must be realized just before leaving +# the script execution (e.g., cleaning temporal files). This function +# is the one called when interruption signals like EXIT, SIGHUP, +# SIGINT and SIGTERM are detected. +function tcar_terminateScriptExecution { + + # Remove temporal directory. + rm -r ${TCAR_SCRIPT_TEMPDIR} + + # NOTE: Don't specify an exit status here. As convenction we do + # this when error messages are triggerd. See `--as-error-line' + # option from `tcar_printMessage' functionality. + +} diff --git a/Scripts/tcar_unsetModuleEnvironment.sh b/Scripts/tcar_unsetModuleEnvironment.sh new file mode 100755 index 0000000..682944e --- /dev/null +++ b/Scripts/tcar_unsetModuleEnvironment.sh @@ -0,0 +1,52 @@ +#!/bin/bash +###################################################################### +# +# tcar - The CentOS Artwork Repository automation tool. +# Copyright © 2014 The CentOS Artwork SIG +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +# +# Alain Reguera Delgado +# 39 Street No. 4426 Cienfuegos, Cuba. +# +###################################################################### + +# Unset functions exported to tcar.sh script execution environment. +function tcar_unsetModuleEnvironment { + + # Reset text domain locally, in order to prevent this function + # from using the last text domain definition. By default all + # common functions do use the same MO file. + local TEXTDOMAIN="${TCAR_SCRIPT_NAME}" + + # Verify suffix value used to retrieve function files. + if [[ -z ${TCAR_MODULE_NAME} ]];then + tcar_printMessage "`gettext "The export id was not provided."`" --as-error-line + fi + + # Define list of format-specific functionalities. This is the list + # of function definitions previously exported by + # `tcar_setModuleEnvironmentScripts'. Be sure to limit the list + # to function names that start with the suffix specified only. + local TCAR_MODULE_SCRIPT_FN='' + local TCAR_MODULE_SCRIPT_FNS=$(declare -F | gawk '{ print $3 }' | egrep "^${TCAR_MODULE_NAME}") + + # Unset function names from current execution environment. + for TCAR_MODULE_SCRIPT_FN in ${TCAR_MODULE_SCRIPT_FNS};do + unset -f ${TCAR_MODULE_SCRIPT_FN} + tcar_printMessage "unset -f : ${TCAR_MODULE_SCRIPT_FN}" --as-debugger-line + done + +} diff --git a/tcar-scripts-docs/Manpages/Locales/en_US/centos-art.sh.po b/tcar-scripts-docs/Manpages/Locales/en_US/centos-art.sh.po deleted file mode 100644 index 4daf2be..0000000 --- a/tcar-scripts-docs/Manpages/Locales/en_US/centos-art.sh.po +++ /dev/null @@ -1,296 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: centos-art.sh.asciidoc 0.6\n" -"POT-Creation-Date: 2013-11-26 10:20-0500\n" -"PO-Revision-Date: 2013-11-26 10:20-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 "centos-art.sh" -msgstr "centos-art.sh" - -msgid "1" -msgstr "1" - -msgid "The CentOS artwork repository automation tool." -msgstr "The CentOS artwork repository automation tool." - -msgid "" -"centos-art.sh [--help|--version]" -msgstr "" -"centos-art.sh [--help|--version]" - -msgid "" -"Print information about centos-art.sh " -"script itself." -msgstr "" -"Print information about centos-art.sh " -"script itself." - -msgid "" -"centos-art.shMODULE [--help|--version]" -msgstr "" -"centos-art.shMODULE [--help|--version]" - -msgid "" -"Print information about the specified module. See below to see which modules centos-art.sh script supports." -msgstr "" -"Print information about the specified module. See below to see which modules centos-art.sh script supports." - -msgid "Description" -msgstr "Description" - -msgid "" -"centos-art.sh exists to standardize " -"frequent tasks inside the CentOS artwork repository. Inside centos-art.sh script, frequent tasks are organized " -"inside modules." -msgstr "" -"centos-art.sh exists to standardize " -"frequent tasks inside the CentOS artwork repository. Inside centos-art.sh script, frequent tasks are organized " -"inside modules." - -msgid "" -"When you execute the centos-art.sh " -"script in a terminal, it requests you to enter the absolute path of CentOS " -"artwork repository in your workstation. This information is required in " -"order for centos-art.sh to know where " -"the repository directory structure you want to work with is stored in. " -"Later, once centos-art.sh knows where " -"your copy of CentOS artwork repository is stored in, it initializes " -"configuration variables and global functions. At this point, it continues " -"reading the command-line arguments to retrieve the module's name, process " -"common options next to it, store module-specific options and initiates the " -"module's environment by executing the module's initialization script, based " -"on the module's name retrieved from the command-line." -msgstr "" -"When you execute the centos-art.sh " -"script in a terminal, it requests you to enter the absolute path of CentOS " -"artwork repository in your workstation. This information is required in " -"order for centos-art.sh to know where " -"the repository directory structure you want to work with is stored in. " -"Later, once centos-art.sh knows where " -"your copy of CentOS artwork repository is stored in, it initializes " -"configuration variables and global functions. At this point, it continues " -"reading the command-line arguments to retrieve the module's name, process " -"common options next to it, store module-specific options and initiates the " -"module's environment by executing the module's initialization script, based " -"on the module's name retrieved from the command-line." - -msgid "Modules" -msgstr "Modules" - -msgid "" -"The centos-art.sh script supports the " -"following modules:" -msgstr "" -"The centos-art.sh script supports the " -"following modules:" - -msgid "prepare" -msgstr "prepare" - -msgid "" -"Standardize configuration tasks needed by your working copy (e.g., verify " -"whether required packages are installed or not in your workstation, calls " -"render module to produce images and manuals in the correct order). This is " -"the first task you should run in your workstation, just after downloading a " -"fresh working copy of CentOS artwork repository." -msgstr "" -"Standardize configuration tasks needed by your working copy (e.g., verify " -"whether required packages are installed or not in your workstation, calls " -"render module to produce images and manuals in the correct order). This is " -"the first task you should run in your workstation, just after downloading a " -"fresh working copy of CentOS artwork repository." - -msgid "render" -msgstr "render" - -msgid "" -"Standardize the way content is produced inside the repository. This function " -"relies on configuration files to do its work. Whenever you need to produce " -"images, documentation or localized content this is the module you'll need to " -"use." -msgstr "" -"Standardize the way content is produced inside the repository. This function " -"relies on configuration files to do its work. Whenever you need to produce " -"images, documentation or localized content this is the module you'll need to " -"use." - -msgid "locale" -msgstr "locale" - -msgid "" -"Standardize the way translatable strings are retrieved from source files and " -"put into portable objects for you to edit. Portable objects produced by this " -"module are used by render module to " -"produce localized content. Whenever you need to produce the intermediate " -"files holding the translatable strings required to produce localized " -"content, use this module." -msgstr "" -"Standardize the way translatable strings are retrieved from source files and " -"put into portable objects for you to edit. Portable objects produced by this " -"module are used by render module to " -"produce localized content. Whenever you need to produce the intermediate " -"files holding the translatable strings required to produce localized " -"content, use this module." - -msgid "tuneup" -msgstr "tuneup" - -msgid "" -"Standardize maintenance tasks frequently run inside the repository (e.g., " -"reset written by, copyright and license information inside shell script's " -"top-comments; transform probably malformed HTML documents into valid " -"documents, and remove unused tags inside SVG documents.)." -msgstr "" -"Standardize maintenance tasks frequently run inside the repository (e.g., " -"reset written by, copyright and license information inside shell script's " -"top-comments; transform probably malformed HTML documents into valid " -"documents, and remove unused tags inside SVG documents.)." - -msgid "Options" -msgstr "Options" - -msgid "" -"The centos-art.sh script supports the " -"following options:" -msgstr "" -"The centos-art.sh script supports the " -"following options:" - -msgid "--help" -msgstr "--help" - -msgid "Print script documentation." -msgstr "Print script documentation." - -msgid "--version" -msgstr "--version" - -msgid "Print script version." -msgstr "Print script version." - -msgid "--debug" -msgstr "--debug" - -msgid "" -"Run the script in debugging mode. This option is very useful if you want to " -"get a closer look to the way modules are opened and closed inside centos-art.sh script." -msgstr "" -"Run the script in debugging mode. This option is very useful if you want to " -"get a closer look to the way modules are opened and closed inside centos-art.sh script." - -msgid "--quiet" -msgstr "--quiet" - -msgid "" -"Run the script quietly. This option reduces the amount of information the " -"centos-art.sh script prints out when " -"processing source files." -msgstr "" -"Run the script quietly. This option reduces the amount of information the " -"centos-art.sh script prints out when " -"processing source files." - -msgid "--yes" -msgstr "--yes" - -msgid "" -"Run the script in affirmative mode. This is answering “yes” to all “yes or " -"no” questions. This option is useful when you run centos-art.sh with the --quiet option." -msgstr "" -"Run the script in affirmative mode. This is answering “yes” to all “yes or " -"no” questions. This option is useful when you run centos-art.sh with the --quiet option." - -msgid "Exit Status" -msgstr "Exit Status" - -msgid "0 — Exit successfully without errors." -msgstr "0 — Exit successfully without errors." - -msgid "1 — Exit with errors." -msgstr "1 — Exit with errors." - -msgid "Bugs" -msgstr "Bugs" - -msgid "https://centos.org.cu/bugs/" -msgstr "https://centos.org.cu/bugs/" - -msgid "Author" -msgstr "Author" - -msgid "" -"The centos-art.sh script has received " -"contribution from the following people:" -msgstr "" -"The centos-art.sh script has received " -"contribution from the following people:" - -msgid "" -"Alain Reguera Delgado <al@centos." -"org.cu>, 2009-2013" -msgstr "" -"Alain Reguera Delgado <al@centos." -"org.cu>, 2009-2013" - -msgid "Copyright" -msgstr "Copyright" - -msgid "Copyright © 2009-2013 The CentOS Artwork SIG" -msgstr "Copyright © 2009-2013 The CentOS Artwork SIG" - -msgid "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." -msgstr "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." - -msgid "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." -msgstr "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." - -msgid "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." -msgstr "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. -msgid "translator-credits" -msgstr "translator-credits" diff --git a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_checkFiles.sh.po b/tcar-scripts-docs/Manpages/Locales/en_US/tcar_checkFiles.sh.po deleted file mode 100644 index 585629d..0000000 --- a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_checkFiles.sh.po +++ /dev/null @@ -1,296 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: tcar_checkFiles.sh.asciidoc 0.6\n" -"POT-Creation-Date: 2013-11-26 10:20-0500\n" -"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_checkfiles" -msgstr "tcar_checkfiles" - -msgid "1" -msgstr "1" - -msgid "tcar_checkFiles" -msgstr "tcar_checkFiles" - -msgid "Standardize constructions for file verifications." -msgstr "Standardize constructions for file verifications." - -msgid "cli_checkFiles [-d|-e|-f|-h|-x] LOCATION" -msgstr "cli_checkFiles [-d|-e|-f|-h|-x] LOCATION" - -msgid "Description" -msgstr "Description" - -msgid "" -"The cli_checkFiles exists to answer " -"basic questions like “Is LOCATION is a regular file?” and " -"“Is LOCATION a directory?”. The answer to such questions " -"affects the script execution flow in the following way: when the answer " -"positive (e.g., LOCATION is a regular file), the script " -"passes the test silently and continues its execution. When the answer is " -"negative(e.g., LOCATION is not a regular file), the " -"script finishes its execution immediately with an error message." -msgstr "" -"The cli_checkFiles exists to answer " -"basic questions like “Is LOCATION is a regular file?” and " -"“Is LOCATION a directory?”. The answer to such questions " -"affects the script execution flow in the following way: when the answer " -"positive (e.g., LOCATION is a regular file), the script " -"passes the test silently and continues its execution. When the answer is " -"negative(e.g., LOCATION is not a regular file), the " -"script finishes its execution immediately with an error message." - -msgid "" -"The cli_checkFiles function is exported " -"to centos-art.sh script environment in " -"the very beginning of its execution and will be available all along its " -"execution lifetime. You can use this function inside common and specific " -"functions whenever you need to verify files inside the The CentOS Artwork " -"Repository." -msgstr "" -"The cli_checkFiles function is exported " -"to centos-art.sh script environment in " -"the very beginning of its execution and will be available all along its " -"execution lifetime. You can use this function inside common and specific " -"functions whenever you need to verify files inside the The CentOS Artwork " -"Repository." - -msgid "" -"The cli_checkFiles function is " -"available inside the centos-art.sh " -"script only as part of its execution environment. This function is exported " -"to centos-art.sh script just after " -"executing the script from the command-line and will be available all along " -"the script lifetime. So, you can use this function both in common and " -"specific functionalities of centos-art.sh script." -msgstr "" -"The cli_checkFiles function is " -"available inside the centos-art.sh " -"script only as part of its execution environment. This function is exported " -"to centos-art.sh script just after " -"executing the script from the command-line and will be available all along " -"the script lifetime. So, you can use this function both in common and " -"specific functionalities of centos-art.sh script." - -msgid "" -"The cli_checkFiles function doesn't " -"create subsequent execution environments." -msgstr "" -"The cli_checkFiles function doesn't " -"create subsequent execution environments." - -msgid "Usage" -msgstr "Usage" - -msgid "" -"Use the cli_checkFiles function inside " -"centos-art.sh script whenever you need " -"to control the script execution flow based on file type (e.g., regular " -"files, directories, links, etc.) verifications." -msgstr "" -"Use the cli_checkFiles function inside " -"centos-art.sh script whenever you need " -"to control the script execution flow based on file type (e.g., regular " -"files, directories, links, etc.) verifications." - -msgid "Options" -msgstr "Options" - -msgid "" -"The cli_checkFiles function accepts the " -"following options:" -msgstr "" -"The cli_checkFiles function accepts the " -"following options:" - -msgid "-d" -msgstr "-d" - -msgid "" -"Verifies whether LOCATION exists and is a directory. If " -"it doesn't exists or isn't a directory, an error message is printed and the " -"script finishes its execution. Otherwise, if it exists and is a directory, " -"the script continues its execution normally." -msgstr "" -"Verifies whether LOCATION exists and is a directory. If " -"it doesn't exists or isn't a directory, an error message is printed and the " -"script finishes its execution. Otherwise, if it exists and is a directory, " -"the script continues its execution normally." - -msgid "-e" -msgstr "-e" - -msgid "" -"Verifies whether LOCATION exists or not. If it doesn't " -"exist, an error message is printed and the script finishes its execution. " -"Otherwise, if it does exists, the script continues its execution normally." -msgstr "" -"Verifies whether LOCATION exists or not. If it doesn't " -"exist, an error message is printed and the script finishes its execution. " -"Otherwise, if it does exists, the script continues its execution normally." - -msgid "-f" -msgstr "-f" - -msgid "" -"Verifies whether LOCATION exists and is a regular file. " -"If it doesn't exists or isn't a regular file, an error message is printed " -"and the script finishes its execution. Otherwise, if it exists and is a " -"regular file, the script continues its execution normally." -msgstr "" -"Verifies whether LOCATION exists and is a regular file. " -"If it doesn't exists or isn't a regular file, an error message is printed " -"and the script finishes its execution. Otherwise, if it exists and is a " -"regular file, the script continues its execution normally." - -msgid "-h" -msgstr "-h" - -msgid "" -"Verifies whether LOCATION exists and is a symbolic link. " -"If it doesn't exists or isn't a symbolic link, an error message is printed " -"and the script finishes its execution immediately. Otherwise, if it does " -"exist and is a symbolic link, the script continue its execution normally." -msgstr "" -"Verifies whether LOCATION exists and is a symbolic link. " -"If it doesn't exists or isn't a symbolic link, an error message is printed " -"and the script finishes its execution immediately. Otherwise, if it does " -"exist and is a symbolic link, the script continue its execution normally." - -msgid "-x" -msgstr "-x" - -msgid "" -"Verifies whether LOCATION exists and execution permission " -"is granted. If it doesn't exist or hasn't execution permission, the script " -"finishes its execution immediately. Otherwise, if it exists and has " -"execution permissions, the script continues its execution normally." -msgstr "" -"Verifies whether LOCATION exists and execution permission " -"is granted. If it doesn't exist or hasn't execution permission, the script " -"finishes its execution immediately. Otherwise, if it exists and has " -"execution permissions, the script continues its execution normally." - -msgid "" -"The value of the LOCATION argument must be an absolute " -"path to the file you want to verify. If such file doesn't exists in any " -"supported form, the script finishes its execution with an error message." -msgstr "" -"The value of the LOCATION argument must be an absolute " -"path to the file you want to verify. If such file doesn't exists in any " -"supported form, the script finishes its execution with an error message." - -msgid "Examples" -msgstr "Examples" - -msgid "" -"The following example was taken from centos-art." -"sh script initialization phase. Notice the position of cli_checkFiles function inside the loop. If some " -"of the function files we need to export doesn't have execution rights, " -"cli_checkFiles will finish the script " -"execution immediately with an error message." -msgstr "" -"The following example was taken from centos-art." -"sh script initialization phase. Notice the position of cli_checkFiles function inside the loop. If some " -"of the function files we need to export doesn't have execution rights, " -"cli_checkFiles will finish the script " -"execution immediately with an error message." - -#, no-wrap -msgid "" -"for FUNCFILE in ${FUNCFILES};do\n" -"\n" -" # Verify the execution rights for function file.\n" -" cli_checkFiles -x ${FUNCFILE}\n" -"\n" -" # Initialize the function file.\n" -" . ${FUNCFILE}\n" -"\n" -" # Export the function names inside the file to current shell\n" -" # script environment.\n" -" export -f $(egrep \"${PATTERN}\" ${FUNCFILE} | gawk '{ print $2 }')\n" -"\n" -"done" -msgstr "" -"for FUNCFILE in ${FUNCFILES};do\n" -"\n" -" # Verify the execution rights for function file.\n" -" cli_checkFiles -x ${FUNCFILE}\n" -"\n" -" # Initialize the function file.\n" -" . ${FUNCFILE}\n" -"\n" -" # Export the function names inside the file to current shell\n" -" # script environment.\n" -" export -f $(egrep \"${PATTERN}\" ${FUNCFILE} | gawk '{ print $2 }')\n" -"\n" -"done" - -msgid "Bugs" -msgstr "Bugs" - -msgid "See https://centos.org.cu/bugs/" -msgstr "See https://centos.org.cu/bugs/" - -msgid "Authors" -msgstr "Authors" - -msgid "" -"The tcar_checkFiles function has " -"received contributions from the following people:" -msgstr "" -"The tcar_checkFiles function has " -"received contributions from the following people:" - -msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" -msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" - -msgid "License" -msgstr "License" - -msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" -msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" - -msgid "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." -msgstr "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." - -msgid "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." -msgstr "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." - -msgid "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." -msgstr "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. -msgid "translator-credits" -msgstr "translator-credits" diff --git a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_checkRepoDirSource.sh.po b/tcar-scripts-docs/Manpages/Locales/en_US/tcar_checkRepoDirSource.sh.po deleted file mode 100644 index 3e3f609..0000000 --- a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_checkRepoDirSource.sh.po +++ /dev/null @@ -1,125 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: tcar_checkRepoDirSource.sh.asciidoc 0.6\n" -"POT-Creation-Date: 2013-11-26 10:20-0500\n" -"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_checkrepodirsource.sh" -msgstr "tcar_checkrepodirsource.sh" - -msgid "1" -msgstr "1" - -msgid "tcar_checkRepoDirSource" -msgstr "tcar_checkRepoDirSource" - -msgid "Standardize the working copy's absolute path construction." -msgstr "Standardize the working copy's absolute path construction." - -msgid "tcar_checkRepoDirSource \"LOCATION\"" -msgstr "tcar_checkRepoDirSource \"LOCATION\"" - -msgid "Description" -msgstr "Description" - -msgid "" -"The tcar_checkRepoDirSource function " -"standardizes the path construction to directories inside it the working " -"copy, using absolute paths. This function transforms relative paths passed " -"as non-option arguments to centos-art.sh script command-line into absolute paths inside the working copy " -"and verifies whether they really exist as directories inside the working " -"copy or not. If the path provided doesn't exist as directory inside the " -"working copy, the script will finish its execution immediately with an error " -"message. Otherwise, if the directory exists, the variable " -"TCAR_ARGUMENTS is redefined with the related absolute " -"path for further use." -msgstr "" -"The tcar_checkRepoDirSource function " -"standardizes the path construction to directories inside it the working " -"copy, using absolute paths. This function transforms relative paths passed " -"as non-option arguments to centos-art.sh script command-line into absolute paths inside the working copy " -"and verifies whether they really exist as directories inside the working " -"copy or not. If the path provided doesn't exist as directory inside the " -"working copy, the script will finish its execution immediately with an error " -"message. Otherwise, if the directory exists, the variable " -"TCAR_ARGUMENTS is redefined with the related absolute " -"path for further use." - -msgid "" -"Use the tcar_checkRepoDirSource " -"function whenever you need to be sure that non-option arguments passed to " -"centos-art.sh script command-line will " -"always point to directories inside the working copy." -msgstr "" -"Use the tcar_checkRepoDirSource " -"function whenever you need to be sure that non-option arguments passed to " -"centos-art.sh script command-line will " -"always point to directories inside the working copy." - -msgid "Bugs" -msgstr "Bugs" - -msgid "See https://centos.org.cu/bugs/" -msgstr "See https://centos.org.cu/bugs/" - -msgid "Authors" -msgstr "Authors" - -msgid "" -"The tcar_checkRepoDirSource function " -"has received contributions from the following people:" -msgstr "" -"The tcar_checkRepoDirSource function " -"has received contributions from the following people:" - -msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" -msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" - -msgid "License" -msgstr "License" - -msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" -msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" - -msgid "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." -msgstr "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." - -msgid "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." -msgstr "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." - -msgid "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." -msgstr "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. -msgid "translator-credits" -msgstr "translator-credits" diff --git a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_getConfigValue.sh.po b/tcar-scripts-docs/Manpages/Locales/en_US/tcar_getConfigValue.sh.po deleted file mode 100644 index 442eca5..0000000 --- a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_getConfigValue.sh.po +++ /dev/null @@ -1,156 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: tcar_getConfigValue.sh.asciidoc 0.6\n" -"POT-Creation-Date: 2013-11-26 10:20-0500\n" -"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_getconfigvalue.sh" -msgstr "tcar_getconfigvalue.sh" - -msgid "1" -msgstr "1" - -msgid "tcar_getConfigValue" -msgstr "tcar_getConfigValue" - -msgid "Standardize options retrieval from configuration files." -msgstr "Standardize options retrieval from configuration files." - -msgid "tcar_getConfigValue FILE SECTION OPTION" -msgstr "tcar_getConfigValue FILE SECTION OPTION" - -msgid "Description" -msgstr "Description" - -msgid "" -"The tcar_getConfigValue function " -"standardizes the way option values are retrieved from configuration files. " -"As convention, tcar_getConfigValue uses " -"the output produced by tcar_getConfigLines as input to retrieve the option values. As convention, in " -"option = \"value\" lines, the values retrieved are always " -"on the right side. The values retrieved are also output without quotation " -"and translation markers already expanded." -msgstr "" -"The tcar_getConfigValue function " -"standardizes the way option values are retrieved from configuration files. " -"As convention, tcar_getConfigValue uses " -"the output produced by tcar_getConfigLines as input to retrieve the option values. As convention, in " -"option = \"value\" lines, the values retrieved are always " -"on the right side. The values retrieved are also output without quotation " -"and translation markers already expanded." - -msgid "" -"The tcar_getConfigValue function " -"accepts the following arguments:" -msgstr "" -"The tcar_getConfigValue function " -"accepts the following arguments:" - -msgid "FILE" -msgstr "FILE" - -msgid "" -"This argument specifies the absolute path to the configuration file you want " -"to retrieve the value from. For example," -msgstr "" -"This argument specifies the absolute path to the configuration file you want " -"to retrieve the value from. For example," - -msgid "SECTION" -msgstr "SECTION" - -msgid "" -"This argument specifies the name of the section related to the configuration " -"line you want to retrieve the value from. For example, “symbols” without " -"brackets." -msgstr "" -"This argument specifies the name of the section related to the configuration " -"line you want to retrieve the value from. For example, “symbols” without " -"brackets." - -msgid "OPTION" -msgstr "OPTION" - -msgid "" -"This argument specifies the name of the option you want to retrieve the " -"value from." -msgstr "" -"This argument specifies the name of the option you want to retrieve the " -"value from." - -msgid "" -"Use the tcar_getConfigValue function " -"whenever you want to retrieve values from configuration files in a " -"controlled way." -msgstr "" -"Use the tcar_getConfigValue function " -"whenever you want to retrieve values from configuration files in a " -"controlled way." - -msgid "Bugs" -msgstr "Bugs" - -msgid "See https://centos.org.cu/bugs/" -msgstr "See https://centos.org.cu/bugs/" - -msgid "Authors" -msgstr "Authors" - -msgid "" -"The tcar_checkFiles function has " -"received contributions from the following people:" -msgstr "" -"The tcar_checkFiles function has " -"received contributions from the following people:" - -msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" -msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" - -msgid "License" -msgstr "License" - -msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" -msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" - -msgid "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." -msgstr "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." - -msgid "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." -msgstr "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." - -msgid "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." -msgstr "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. -msgid "translator-credits" -msgstr "translator-credits" diff --git a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_getFilesList.sh.po b/tcar-scripts-docs/Manpages/Locales/en_US/tcar_getFilesList.sh.po deleted file mode 100644 index ba5bdfc..0000000 --- a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_getFilesList.sh.po +++ /dev/null @@ -1,236 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: tcar_getFilesList.sh.asciidoc 0.6\n" -"POT-Creation-Date: 2013-11-26 10:20-0500\n" -"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_getfileslist.sh" -msgstr "tcar_getfileslist.sh" - -msgid "1" -msgstr "1" - -msgid "tcar_getFilesList" -msgstr "tcar_getFilesList" - -msgid "Create customized list of files for further processing." -msgstr "Create customized list of files for further processing." - -msgid "" -"tcar_getFilesList [--pattern|--mindepth|--maxdepth|--type|--uid] LOCATION" -msgstr "" -"tcar_getFilesList [--pattern|--mindepth|--maxdepth|--type|--uid] LOCATION" - -msgid "Description" -msgstr "Description" - -msgid "" -"The tcar_getFilesList standardizes the " -"way list of files are built inside the centos-art." -"sh script. This function outputs a sorted and unique list of " -"files based on the options and location provided as argument. This function " -"is an interface to the find command. " -"Don't use find command directly inside " -"the centos-art.sh script. Instead, use the tcar_getFilesList function." -msgstr "" -"The tcar_getFilesList standardizes the " -"way list of files are built inside the centos-art." -"sh script. This function outputs a sorted and unique list of " -"files based on the options and location provided as argument. This function " -"is an interface to the find command. " -"Don't use find command directly inside " -"the centos-art.sh script. Instead, use the tcar_getFilesList function." - -msgid "" -"The LOCATION arguments must be the absolute path to a " -"directory and specifies where the search of files in any form (e.g., " -"directories, links, etc.) will take place in. If LOCATION " -"isn't a directory, the script finishes its execution with an error message." -msgstr "" -"The LOCATION arguments must be the absolute path to a " -"directory and specifies where the search of files in any form (e.g., " -"directories, links, etc.) will take place in. If LOCATION " -"isn't a directory, the script finishes its execution with an error message." - -msgid "" -"The tcar_getFilesList accepts the " -"following options:" -msgstr "" -"The tcar_getFilesList accepts the " -"following options:" - -msgid "--pattern=\"REGEX\"" -msgstr "--pattern=\"REGEX\"" - -msgid "" -"This option specifies a posix-egrep type regular expression as value. This " -"regular expression is applied to path specified in LOCATION argument. Only file paths that match this regular expression inside " -"LOCATION directory will be included in the final list of " -"files. By default, if this option is not provided, the “^/.*[[:" -"alnum:]_/-]$+” regular expression is used." -msgstr "" -"This option specifies a posix-egrep type regular expression as value. This " -"regular expression is applied to path specified in LOCATION argument. Only file paths that match this regular expression inside " -"LOCATION directory will be included in the final list of " -"files. By default, if this option is not provided, the “^/.*[[:" -"alnum:]_/-]$+” regular expression is used." - -msgid "" -"When you use the tcar_getFilesList you " -"don't need to specified the absolute path of files you want to look for. " -"This is something tcar_getFilesList " -"already does for you. When you use this function, the value you pass as " -"regular expression isn't the final regular expression used. Instead, the " -"regular expression you pass is used to build the final regular expression " -"passed to find command. The REGEX." -msgstr "" -"When you use the tcar_getFilesList you " -"don't need to specified the absolute path of files you want to look for. " -"This is something tcar_getFilesList " -"already does for you. When you use this function, the value you pass as " -"regular expression isn't the final regular expression used. Instead, the " -"regular expression you pass is used to build the final regular expression " -"passed to find command. The REGEX." - -msgid "--mindepth=\"NUMBER\"" -msgstr "--mindepth=\"NUMBER\"" - -msgid "" -"This option specifies the minimal NUMBER of levels deep " -"the search should go under the directory LOCATION " -"specified. For example, if you specify --mindepth=" -"\"2\" the search will start two levels deep considering the path " -"provided as section." -msgstr "" -"This option specifies the minimal NUMBER of levels deep " -"the search should go under the directory LOCATION " -"specified. For example, if you specify --mindepth=" -"\"2\" the search will start two levels deep considering the path " -"provided as section." - -msgid "--maxdepth=\"NUMBER\"" -msgstr "--maxdepth=\"NUMBER\"" - -msgid "" -"This option specifies the maximum NUMBER of levels deep " -"the search should go under the directory LOCATION " -"specified. For example, if you specify --maxdepth=" -"\"2\" the search will begin in the very same directory path you " -"provided as LOCATION and stop two levels deep using it as " -"section." -msgstr "" -"This option specifies the maximum NUMBER of levels deep " -"the search should go under the directory LOCATION " -"specified. For example, if you specify --maxdepth=" -"\"2\" the search will begin in the very same directory path you " -"provided as LOCATION and stop two levels deep using it as " -"section." - -msgid "--type=\"STRING\"" -msgstr "--type=\"STRING\"" - -msgid "" -"This option specifies the type of files being searched. This option accepts " -"the same values the find-type option does. However, the following " -"STRING values are the most used inside the script so far:" -msgstr "" -"This option specifies the type of files being searched. This option accepts " -"the same values the find-type option does. However, the following " -"STRING values are the most used inside the script so far:" - -msgid "d &mdash; directory." -msgstr "d &mdash; directory." - -msgid "f &mdash; regular file." -msgstr "f &mdash; regular file." - -msgid "--uid=\"NUMBER\"" -msgstr "--uid=\"NUMBER\"" - -msgid "" -"This option specifies the numeric user id of the files you want to search. " -"Only files that match this numeric user id will be added to the final list " -"of files." -msgstr "" -"This option specifies the numeric user id of the files you want to search. " -"Only files that match this numeric user id will be added to the final list " -"of files." - -msgid "" -"Use the tcar_getFilesList whenever you " -"need to build list of files for further processing." -msgstr "" -"Use the tcar_getFilesList whenever you " -"need to build list of files for further processing." - -msgid "Bugs" -msgstr "Bugs" - -msgid "See https://centos.org.cu/bugs/" -msgstr "See https://centos.org.cu/bugs/" - -msgid "Authors" -msgstr "Authors" - -msgid "" -"The tcar_checkFiles function has " -"received contributions from the following people:" -msgstr "" -"The tcar_checkFiles function has " -"received contributions from the following people:" - -msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" -msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" - -msgid "License" -msgstr "License" - -msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" -msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" - -msgid "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." -msgstr "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." - -msgid "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." -msgstr "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." - -msgid "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." -msgstr "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. -msgid "translator-credits" -msgstr "translator-credits" diff --git a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_printMessage.sh.po b/tcar-scripts-docs/Manpages/Locales/en_US/tcar_printMessage.sh.po deleted file mode 100644 index 4ee9f19..0000000 --- a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_printMessage.sh.po +++ /dev/null @@ -1,437 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: tcar_printMessage.sh.asciidoc 0.6\n" -"POT-Creation-Date: 2013-11-26 10:20-0500\n" -"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_printmessage.sh" -msgstr "tcar_printmessage.sh" - -msgid "1" -msgstr "1" - -msgid "tcar_printMessage.sh" -msgstr "tcar_printMessage.sh" - -msgid "Print customized messages in standard ways." -msgstr "Print customized messages in standard ways." - -msgid "" -"tcar_printMessage \"MESSAGE\" [--as-separator-line|--as-banner-line|--as-" -"cropping-line|--as-tuningup-line|--as-checking-line|--as-combining-line|--as-" -"creating-line|--as-reading-line|--as-savedas-line|--as-linkto-line|--as-" -"movedto-line|--as-validating-line|--as-template-line|--as-configuration-" -"line|--as-palette-line|--as-reponse-line|--as-request-line|--as-selection-" -"line|--as-error-line|--as-toknowmore-line|--as-yesornorequest-line|--as-" -"notrailingnew-line|--as-stdout-line|--as-stderr-line]" -msgstr "" -"tcar_printMessage \"MESSAGE\" [--as-separator-line|--as-banner-line|--as-" -"cropping-line|--as-tuningup-line|--as-checking-line|--as-combining-line|--as-" -"creating-line|--as-reading-line|--as-savedas-line|--as-linkto-line|--as-" -"movedto-line|--as-validating-line|--as-template-line|--as-configuration-" -"line|--as-palette-line|--as-reponse-line|--as-request-line|--as-selection-" -"line|--as-error-line|--as-toknowmore-line|--as-yesornorequest-line|--as-" -"notrailingnew-line|--as-stdout-line|--as-stderr-line]" - -msgid "Description" -msgstr "Description" - -msgid "" -"The tcar_printMessage function " -"standardizes the way centos-art.sh scirpt prints messages. By default, " -"centos-art.sh script prints all messages to the standard output with the " -"exception of those messages printed with the --as-" -"stderr-line option, which are printed to standard error output " -"instead." -msgstr "" -"The tcar_printMessage function " -"standardizes the way centos-art.sh scirpt prints messages. By default, " -"centos-art.sh script prints all messages to the standard output with the " -"exception of those messages printed with the --as-" -"stderr-line option, which are printed to standard error output " -"instead." - -msgid "" -"The tcar_printMessage function requires " -"two arguments. The first argument specifies the message you want to print " -"and the second argument specifies the format you'll use to print that " -"message. Because this function is so used inside the centos-art.sh script, " -"it is convenient to provide localization to strings passed as " -"MESSAGE using gettext constructions when they aren't paths." -msgstr "" -"The tcar_printMessage function requires " -"two arguments. The first argument specifies the message you want to print " -"and the second argument specifies the format you'll use to print that " -"message. Because this function is so used inside the centos-art.sh script, " -"it is convenient to provide localization to strings passed as " -"MESSAGE using gettext constructions when they aren't paths." - -msgid "Options" -msgstr "Options" - -msgid "" -"The tcar_printMessage function accepts " -"the following format options as second argument:" -msgstr "" -"The tcar_printMessage function accepts " -"the following format options as second argument:" - -msgid "--as-separator-line" -msgstr "--as-separator-line" - -msgid "" -"This format takes the first character passed as MESSAGE " -"and repeats it horizontally to build a separator line. Use this format " -"whenever you need to create a logical separation between different actions." -msgstr "" -"This format takes the first character passed as MESSAGE " -"and repeats it horizontally to build a separator line. Use this format " -"whenever you need to create a logical separation between different actions." - -msgid "--as-banner-line" -msgstr "--as-banner-line" - -msgid "" -"This format takes the string passed as MESSAGE and puts " -"it inside two horizontal separator lines. Use this format whenever you need " -"to print header information for following lines." -msgstr "" -"This format takes the string passed as MESSAGE and puts " -"it inside two horizontal separator lines. Use this format whenever you need " -"to print header information for following lines." - -msgid "--as-cropping-line" -msgstr "--as-cropping-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been cropped." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been cropped." - -msgid "--as-tuningup-line" -msgstr "--as-tuningup-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been tuned-up." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been tuned-up." - -msgid "--as-checking-line" -msgstr "--as-checking-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been checked or verified (e." -"g., through tcar_checkFiles " -"functionality)." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been checked or verified (e." -"g., through tcar_checkFiles " -"functionality)." - -msgid "--as-combining-line" -msgstr "--as-combining-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been combined." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been combined." - -msgid "--as-creating-line" -msgstr "--as-creating-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been created." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been created." - -msgid "--as-reading-line" -msgstr "--as-reading-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been read." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been read." - -msgid "--as-savedas-line" -msgstr "--as-savedas-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been saved." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been saved." - -msgid "--as-linkto-line" -msgstr "--as-linkto-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been linked." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been linked." - -msgid "--as-movedto-line" -msgstr "--as-movedto-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been moved." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been moved." - -msgid "--as-validating-line" -msgstr "--as-validating-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been validated." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file has been validated." - -msgid "--as-template-line" -msgstr "--as-template-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file is a template or design model." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file is a template or design model." - -msgid "--as-configuration-line" -msgstr "--as-configuration-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file is a configuration file." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file is a configuration file." - -msgid "--as-palette-line" -msgstr "--as-palette-line" - -msgid "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file is a palette of colors." -msgstr "" -"This format is for two columns messages where MESSAGE " -"generally refers to a file inside the repository. Use this format whenever " -"you need to imply the fact that certain file is a palette of colors." - -msgid "--as-response-line" -msgstr "--as-response-line" - -msgid "" -"This format adds --> at the beginning of the string " -"passed as MESSAGE. Use this format whenever you need to " -"imply the fact that certain file is considered part of a response. For " -"example, when you need to express that a group of files will take certain " -"action, you can use this option to doing so." -msgstr "" -"This format adds --> at the beginning of the string " -"passed as MESSAGE. Use this format whenever you need to " -"imply the fact that certain file is considered part of a response. For " -"example, when you need to express that a group of files will take certain " -"action, you can use this option to doing so." - -msgid "--as-request-line" -msgstr "--as-request-line" - -msgid "" -"This format prints MESSAGE without trailing new line. Use " -"this format whenever you need to imply a question or yes or no request." -msgstr "" -"This format prints MESSAGE without trailing new line. Use " -"this format whenever you need to imply a question or yes or no request." - -msgid "--as-selection-line" -msgstr "--as-selection-line" - -msgid "" -"This format uses each word in MESSAGE as item of a " -"selection list. Use this format whenever you need to select one of the items " -"provided as MESSAGE." -msgstr "" -"This format uses each word in MESSAGE as item of a " -"selection list. Use this format whenever you need to select one of the items " -"provided as MESSAGE." - -msgid "--as-error-line" -msgstr "--as-error-line" - -msgid "" -"This format prints error messages produced by centos-art.sh script. It uses " -"the caller built-in command to display " -"the line number and the filename where such error was triggered. Later, it " -"prints where to find more information by using the --as-toknowmore-line option." -msgstr "" -"This format prints error messages produced by centos-art.sh script. It uses " -"the caller built-in command to display " -"the line number and the filename where such error was triggered. Later, it " -"prints where to find more information by using the --as-toknowmore-line option." - -msgid "--as-toknowmore-line" -msgstr "--as-toknowmore-line" - -msgid "" -"This format takes a function name as MESSAGE and prints " -"the command you can use to find more information about it. When this option " -"is passed the script finishes its execution immediately. This option is used " -"in combination with --as-error-line to " -"finish the script execution after an error." -msgstr "" -"This format takes a function name as MESSAGE and prints " -"the command you can use to find more information about it. When this option " -"is passed the script finishes its execution immediately. This option is used " -"in combination with --as-error-line to " -"finish the script execution after an error." - -msgid "--as-yesornorequest-line" -msgstr "--as-yesornorequest-line" - -msgid "" -"This format takes a question as MESSAGE and reads a yes " -"or no answer. When answer is negative, the script finishes its execution " -"immediately. When answer is affirmative, the script continues its execution " -"normally." -msgstr "" -"This format takes a question as MESSAGE and reads a yes " -"or no answer. When answer is negative, the script finishes its execution " -"immediately. When answer is affirmative, the script continues its execution " -"normally." - -msgid "--as-notrailingnew-line" -msgstr "--as-notrailingnew-line" - -msgid "Print MESSAGE without any trailing newline." -msgstr "Print MESSAGE without any trailing newline." - -msgid "--as-stdout-line" -msgstr "--as-stdout-line" - -msgid "Print MESSAGE to standard output." -msgstr "Print MESSAGE to standard output." - -msgid "--as-stderr-line" -msgstr "--as-stderr-line" - -msgid "Print MESSAGE to standard error output." -msgstr "Print MESSAGE to standard error output." - -msgid "Examples" -msgstr "Examples" - -msgid "Bugs" -msgstr "Bugs" - -msgid ".." -msgstr ".." - -msgid "See https://centos.org.cu/bugs/" -msgstr "See https://centos.org.cu/bugs/" - -msgid "Authors" -msgstr "Authors" - -msgid "" -"The tcar_printMessage function has " -"received contributions from the following people:" -msgstr "" -"The tcar_printMessage function has " -"received contributions from the following people:" - -msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" -msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" - -msgid "License" -msgstr "License" - -msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" -msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" - -msgid "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." -msgstr "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." - -msgid "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." -msgstr "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." - -msgid "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." -msgstr "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. -msgid "translator-credits" -msgstr "translator-credits" diff --git a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_setModuleEnvironment.sh.po b/tcar-scripts-docs/Manpages/Locales/en_US/tcar_setModuleEnvironment.sh.po deleted file mode 100644 index 286f0dc..0000000 --- a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_setModuleEnvironment.sh.po +++ /dev/null @@ -1,216 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: tcar_setModuleEnvironment.sh.asciidoc 0.6\n" -"POT-Creation-Date: 2013-11-26 10:20-0500\n" -"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_setmoduleenvironment.sh" -msgstr "tcar_setmoduleenvironment.sh" - -msgid "1" -msgstr "1" - -msgid "tcar_setModuleEnvironment.sh" -msgstr "tcar_setModuleEnvironment.sh" - -msgid "Initiate module environments." -msgstr "Initiate module environments." - -msgid "" -"tcar_setModuleEnvironment [-m \"MODULE_NAME\"] [-t \"MODULE_TYPE\"] [-g " -"MODULE_ARGUMENT] …" -msgstr "" -"tcar_setModuleEnvironment [-m \"MODULE_NAME\"] [-t \"MODULE_TYPE\"] [-g " -"MODULE_ARGUMENT] …" - -msgid "Description" -msgstr "Description" - -msgid "Options" -msgstr "Options" - -msgid "" -"The tcar_setModuleEnvironment function " -"accepts the following options:" -msgstr "" -"The tcar_setModuleEnvironment function " -"accepts the following options:" - -msgid "-m" -msgstr "-m" - -msgid "This option specifies the name of the module you want to load." -msgstr "This option specifies the name of the module you want to load." - -msgid "-t" -msgstr "-t" - -msgid "" -"This option specifies the type of the module you want to load. Modules can " -"be one of the following types:" -msgstr "" -"This option specifies the type of the module you want to load. Modules can " -"be one of the following types:" - -msgid "top-module" -msgstr "top-module" - -msgid "" -"This modules are stored in the first level of Modules directory. This type " -"of modules initiate module environments for specific tasks so it can be " -"called from anywhere inside centos-art.sh script." -msgstr "" -"This modules are stored in the first level of Modules directory. This type " -"of modules initiate module environments for specific tasks so it can be " -"called from anywhere inside centos-art.sh script." - -msgid "sub-module" -msgstr "sub-module" - -msgid "" -"This modules are stored from the second-level of Modules directory on. This " -"type of modules can be executed from top-modules, sub-modules, or sib-" -"modules but never the centos-art.sh " -"file itself." -msgstr "" -"This modules are stored from the second-level of Modules directory on. This " -"type of modules can be executed from top-modules, sub-modules, or sib-" -"modules but never the centos-art.sh " -"file itself." - -msgid "sib-module" -msgstr "sib-module" - -msgid "" -"This modules are stored from the second-level of Modules directory on. This " -"type of modules can be executed from sub-modules or sib-modules, but never " -"top-modules or the centos-art.sh file " -"itself." -msgstr "" -"This modules are stored from the second-level of Modules directory on. This " -"type of modules can be executed from sub-modules or sib-modules, but never " -"top-modules or the centos-art.sh file " -"itself." - -msgid "-g" -msgstr "-g" - -msgid "" -"This option specifies the module-specific option you want to pass for " -"processing in the module environment you are about to execute. Generally, " -"module-specific options are passed through centos-" -"art.sh command-line but you may need to pass them internally in " -"some cases (e.g., you are executing a top-module from a sub-module). If you " -"need to pass more than one option, then you need to put the -g option before " -"each option you want to pass." -msgstr "" -"This option specifies the module-specific option you want to pass for " -"processing in the module environment you are about to execute. Generally, " -"module-specific options are passed through centos-" -"art.sh command-line but you may need to pass them internally in " -"some cases (e.g., you are executing a top-module from a sub-module). If you " -"need to pass more than one option, then you need to put the -g option before " -"each option you want to pass." - -msgid "Bugs" -msgstr "Bugs" - -msgid "" -"In the very beginning of tcar_setModuleEnvironment function, it used just non-array " -"variables and it worked fine for top-module and sub-module processing, " -"however when it was needed to do sibling processing, it didn't work as " -"expected. The failure was produced because a wrong variable assignment when " -"tried to set the path of the next module to load. There was not a clean way " -"to “remember” what was the base directory of the parent directory, so it " -"ended up using the last loaded module base directory which made impossible " -"to load a sibling module. The tcar_setModuleEnvironment function as implemented in version " -"0.5 of The CentOS Artwork Repository, fixes this issue replacing non-array " -"variables by array variables which can remember module information." -msgstr "" -"In the very beginning of tcar_setModuleEnvironment function, it used just non-array " -"variables and it worked fine for top-module and sub-module processing, " -"however when it was needed to do sibling processing, it didn't work as " -"expected. The failure was produced because a wrong variable assignment when " -"tried to set the path of the next module to load. There was not a clean way " -"to “remember” what was the base directory of the parent directory, so it " -"ended up using the last loaded module base directory which made impossible " -"to load a sibling module. The tcar_setModuleEnvironment function as implemented in version " -"0.5 of The CentOS Artwork Repository, fixes this issue replacing non-array " -"variables by array variables which can remember module information." - -msgid "" -"See also: https://centos.org.cu/" -"bugs/" -msgstr "" -"See also: https://centos.org.cu/" -"bugs/" - -msgid "Author" -msgstr "Author" - -msgid "" -"The centos-art.sh script has received " -"contribution from the following people:" -msgstr "" -"The centos-art.sh script has received " -"contribution from the following people:" - -msgid "" -"Alain Reguera Delgado <al@centos." -"org.cu>, 2009-2013" -msgstr "" -"Alain Reguera Delgado <al@centos." -"org.cu>, 2009-2013" - -msgid "Copyright" -msgstr "Copyright" - -msgid "Copyright © 2009-2013 The CentOS Artwork SIG" -msgstr "Copyright © 2009-2013 The CentOS Artwork SIG" - -msgid "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." -msgstr "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." - -msgid "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." -msgstr "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." - -msgid "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." -msgstr "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. -msgid "translator-credits" -msgstr "translator-credits" diff --git a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_setTranslationMarkers.sh.po b/tcar-scripts-docs/Manpages/Locales/en_US/tcar_setTranslationMarkers.sh.po deleted file mode 100644 index adddc15..0000000 --- a/tcar-scripts-docs/Manpages/Locales/en_US/tcar_setTranslationMarkers.sh.po +++ /dev/null @@ -1,445 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: tcar_setTranslationMarkers.sh.asciidoc 0.6\n" -"POT-Creation-Date: 2013-11-26 10:20-0500\n" -"PO-Revision-Date: 2013-11-26 10:20-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 "tcar_settranslationmarkers" -msgstr "tcar_settranslationmarkers" - -msgid "1" -msgstr "1" - -msgid "tcar_setTranslationMarkers" -msgstr "tcar_setTranslationMarkers" - -msgid "Expands translation markers." -msgstr "Expands translation markers." - -msgid "tcar_setTranslationMarkers \"FILE\"" -msgstr "tcar_setTranslationMarkers \"FILE\"" - -msgid "Description" -msgstr "Description" - -msgid "" -"The cli_setTranslationMarkers " -"standardizes construction of translation markers and their related " -"expansion. As convention, translation markers are set inside source files (e." -"g., DocBook, SVG) and expanded inside temporal instances used to produce " -"final contents. The FILE argument should point to the " -"temporal file where translation markers expansion takes place in." -msgstr "" -"The cli_setTranslationMarkers " -"standardizes construction of translation markers and their related " -"expansion. As convention, translation markers are set inside source files (e." -"g., DocBook, SVG) and expanded inside temporal instances used to produce " -"final contents. The FILE argument should point to the " -"temporal file where translation markers expansion takes place in." - -msgid "" -"Translation markers written in source files must comply the " -"== regular expression pattern. For example, =UNKNOWN_MARKER= is a valid translation marker without any " -"replacement. To prevent centos-art.sh " -"script from expanding translation markers, add a backslash (+) " -"between the first equal sign and the following letter. For example, +=...=+ " -"won't be expanded." -msgstr "" -"Translation markers written in source files must comply the " -"== regular expression pattern. For example, =UNKNOWN_MARKER= is a valid translation marker without any " -"replacement. To prevent centos-art.sh " -"script from expanding translation markers, add a backslash (+) " -"between the first equal sign and the following letter. For example, +=...=+ " -"won't be expanded." - -msgid "" -"The cli_setTranslationMarkers supports " -"the following translation markers:" -msgstr "" -"The cli_setTranslationMarkers supports " -"the following translation markers:" - -msgid "" -"=\\COPYRIGHT_YEAR_LAST=, =\\COPYRIGHT_YEAR=" -msgstr "" -"=\\COPYRIGHT_YEAR_LAST=, =\\COPYRIGHT_YEAR=" - -msgid "" -"These translation markers expand to the last year used in copyright notes. " -"For example, =COPYRIGHT_YEAR_LAST=." -msgstr "" -"These translation markers expand to the last year used in copyright notes. " -"For example, =COPYRIGHT_YEAR_LAST=." - -msgid "" -"=\\COPYRIGHT_YEAR_LIST=, =" -"\\COPYRIGHT_YEARS_LIST=" -msgstr "" -"=\\COPYRIGHT_YEAR_LIST=, =" -"\\COPYRIGHT_YEARS_LIST=" - -msgid "" -"This translation markers expand to the list of years used in copyright " -"notes. For example, =COPYRIGHT_YEARS_LIST=. The first " -"year represents the time we began to work on The CentOS Artwork Repository." -msgstr "" -"This translation markers expand to the list of years used in copyright " -"notes. For example, =COPYRIGHT_YEARS_LIST=. The first " -"year represents the time we began to work on The CentOS Artwork Repository." - -msgid "=\\COPYRIGHT_HOLDER=" -msgstr "=\\COPYRIGHT_HOLDER=" - -msgid "" -"This translation marker expands to the holder used in copyright notes. For " -"example, =COPYRIGHT_HOLDER=." -msgstr "" -"This translation marker expands to the holder used in copyright notes. For " -"example, =COPYRIGHT_HOLDER=." - -msgid "=\\COPYRIGHT_HOLDER_PREDICATE=" -msgstr "=\\COPYRIGHT_HOLDER_PREDICATE=" - -msgid "" -"This translation marker expands both the holder and the predicate used in " -"copyright notes. For example, =COPYRIGHT_HOLDER_PREDICATE=." -msgstr "" -"This translation marker expands both the holder and the predicate used in " -"copyright notes. For example, =COPYRIGHT_HOLDER_PREDICATE=." - -msgid "=\\BRAND=" -msgstr "=\\BRAND=" - -msgid "" -"This translation marker expands to the brand name used on files names and " -"URLs inside The CentOS Artwork Repository. For example, =BRAND=." -msgstr "" -"This translation marker expands to the brand name used on files names and " -"URLs inside The CentOS Artwork Repository. For example, =BRAND=." - -msgid "=\\LICENSE=" -msgstr "=\\LICENSE=" - -msgid "" -"This translation marker expands to the license information used in files " -"created by centos-art.sh script. For " -"example, =LICENSE=." -msgstr "" -"This translation marker expands to the license information used in files " -"created by centos-art.sh script. For " -"example, =LICENSE=." - -msgid "=\\LICENSE_URL=" -msgstr "=\\LICENSE_URL=" - -msgid "" -"This translation marker expands to the license URL used in files created by " -"centos-art.sh script. For example, " -"=LICENSE_URL=." -msgstr "" -"This translation marker expands to the license URL used in files created by " -"centos-art.sh script. For example, " -"=LICENSE_URL=." - -msgid "=\\THEME=" -msgstr "=\\THEME=" - -msgid "" -"This translation marker expands to the theme portion of path you are " -"producing through centos-art.sh script. As consequence, this translation " -"marker should be used in situations where you are producing theme components " -"only. This translation marker expands its value by retrieving the theme part " -"of the path you provide as non-option argument to centos-art.sh script. For example, if you provide the path " -"Identity/Images/Themes/Modern/2/Distro/5, this " -"translation will expand to the Modern/2/ value." -msgstr "" -"This translation marker expands to the theme portion of path you are " -"producing through centos-art.sh script. As consequence, this translation " -"marker should be used in situations where you are producing theme components " -"only. This translation marker expands its value by retrieving the theme part " -"of the path you provide as non-option argument to centos-art.sh script. For example, if you provide the path " -"Identity/Images/Themes/Modern/2/Distro/5, this " -"translation will expand to the Modern/2/ value." - -msgid "" -"In case you need to retrieve the theme name or version separately one " -"another, then you can use the =\\THEMENAME= and =" -"\\THEMERELEASE= translation markers, respectively. When you use " -"these translation markers, forward slashes are removed from result. So, if " -"you provide the path Identity/Images/Themes/Modern/2/Distro/5, =\\THEMENAME= will expand to Modern and =THEMERELEASE= will expand to 2." -msgstr "" -"In case you need to retrieve the theme name or version separately one " -"another, then you can use the =\\THEMENAME= and =" -"\\THEMERELEASE= translation markers, respectively. When you use " -"these translation markers, forward slashes are removed from result. So, if " -"you provide the path Identity/Images/Themes/Modern/2/Distro/5, =\\THEMENAME= will expand to Modern and =THEMERELEASE= will expand to 2." - -msgid "=\\RELEASE=" -msgstr "=\\RELEASE=" - -msgid "" -"This translation marker expands to the current release information of your " -"CentOS distribution. By default this information is retrieved from /" -"etc/redhat-release. In case the option --" -"release be passed, the value specified with it will overwrite the " -"default value and will be this the one used as section for this translation " -"marker to retrieve the release information. So, for example, if you are " -"running a CentOS-5.8 distribution and no --" -"release option is passed to centos-art." -"sh script, this translation marker expands to 5.8. On the other hand, if you are still running a CentOS-5.8 " -"distribution but provide the --release=6.3 option to centos-art.sh " -"script, this translation marker expands to 6.3 instead." -msgstr "" -"This translation marker expands to the current release information of your " -"CentOS distribution. By default this information is retrieved from /" -"etc/redhat-release. In case the option --" -"release be passed, the value specified with it will overwrite the " -"default value and will be this the one used as section for this translation " -"marker to retrieve the release information. So, for example, if you are " -"running a CentOS-5.8 distribution and no --" -"release option is passed to centos-art." -"sh script, this translation marker expands to 5.8. On the other hand, if you are still running a CentOS-5.8 " -"distribution but provide the --release=6.3 option to centos-art.sh " -"script, this translation marker expands to 6.3 instead." - -msgid "" -"In case you need to retrieve minor and major release numbers separately one " -"another, then you can use the =\\MINOR_RELEASE= and " -"=\\MAJOR_RELEASE= translation makers, respectively." -msgstr "" -"In case you need to retrieve minor and major release numbers separately one " -"another, then you can use the =\\MINOR_RELEASE= and " -"=\\MAJOR_RELEASE= translation makers, respectively." - -msgid "=\\ARCH=" -msgstr "=\\ARCH=" - -msgid "" -"This translation marker expands to the current architecture of your CentOS " -"Distribution. By default this information is retrieved from uname -i. In case the option --arch be passed, the value specified with it will overwrite " -"the default value and will be the one used as section. For example, if the " -"uname -i outputs the line <" -"computeroutput>i386</computeroutput>, this translation marker will " -"expand to i386. On the other hand, if you pass the " -"--arch=x86_64 option to centos-art.sh script, this translation marker will " -"expand to x86_64 instead." -msgstr "" -"This translation marker expands to the current architecture of your CentOS " -"Distribution. By default this information is retrieved from uname -i. In case the option --arch be passed, the value specified with it will overwrite " -"the default value and will be the one used as section. For example, if the " -"uname -i outputs the line <" -"computeroutput>i386</computeroutput>, this translation marker will " -"expand to i386. On the other hand, if you pass the " -"--arch=x86_64 option to centos-art.sh script, this translation marker will " -"expand to x86_64 instead." - -msgid "=\\URL=" -msgstr "=\\URL=" - -msgid "" -"This translation marker expands to the URL which points to The CentOS " -"Project home page. For example, =URL=. In case you are " -"using the centos-art.sh script in a different locale but English " -"(en_US.UTF-8), this translation marker expands as usual " -"but with the language information appended to the end of the string. For " -"example, if you are executing the centos-art.shscript for Spanish locale (e." -"g., es_ES.UTF-8), this translation marker expands to " -"=URL=es/." -msgstr "" -"This translation marker expands to the URL which points to The CentOS " -"Project home page. For example, =URL=. In case you are " -"using the centos-art.sh script in a different locale but English " -"(en_US.UTF-8), this translation marker expands as usual " -"but with the language information appended to the end of the string. For " -"example, if you are executing the centos-art.shscript for Spanish locale (e." -"g., es_ES.UTF-8), this translation marker expands to " -"=URL=es/." - -msgid "" -"In case you need to expand other URL related to The CentOS Project domain, " -"use translation markers described in . Likewise =\\URL=, translation markers described in does append the current " -"language information to the end of the URL string based on the locale " -"information you are currently executing the centos-" -"art.sh script." -msgstr "" -"In case you need to expand other URL related to The CentOS Project domain, " -"use translation markers described in . Likewise =\\URL=, translation markers described in does append the current " -"language information to the end of the URL string based on the locale " -"information you are currently executing the centos-" -"art.sh script." - -msgid "URL-related translation markers" -msgstr "URL-related translation markers" - -msgid "-------------------`----------------- Translation Marker Expands To" -msgstr "-------------------`----------------- Translation Marker Expands To" - -#, no-wrap -msgid "" -"=\\URL_WIKI= =URL_WIKI=\n" -"=\\URL_LISTS= =URL_LISTS=\n" -"=\\URL_FORUMS= =URL_FORUMS=\n" -"=\\URL_MIRRORS= =URL_MIRRORS=\n" -"=\\URL_DOCS= =URL_DOCS=\n" -"=\\URL_PROJECTS= =URL_PROJECTS=\n" -"=\\URL_SVN= =URL_SVN=\n" -"=\\URL_TRAC= =URL_TRAC=\n" -"=\\URL_PLANET= =URL_PLANET=" -msgstr "" -"=\\URL_WIKI= =URL_WIKI=\n" -"=\\URL_LISTS= =URL_LISTS=\n" -"=\\URL_FORUMS= =URL_FORUMS=\n" -"=\\URL_MIRRORS= =URL_MIRRORS=\n" -"=\\URL_DOCS= =URL_DOCS=\n" -"=\\URL_PROJECTS= =URL_PROJECTS=\n" -"=\\URL_SVN= =URL_SVN=\n" -"=\\URL_TRAC= =URL_TRAC=\n" -"=\\URL_PLANET= =URL_PLANET=" - -msgid "=\\MAIL_DOCS=" -msgstr "=\\MAIL_DOCS=" - -msgid "" -"This translation marker expands to CentOS documentation mailing list " -"address. For example, =MAIL_DOCS=." -msgstr "" -"This translation marker expands to CentOS documentation mailing list " -"address. For example, =MAIL_DOCS=." - -msgid "=\\LOCALE=" -msgstr "=\\LOCALE=" - -msgid "" -"This translation marker expands to the current locale information used by " -"centos-art.sh script. This value is " -"retrieved from the <envar>LANG</envar> environment variable and " -"should look like =LOCALE=. In case you need to retrieve " -"the language and country part separately one another, you can use the " -"=\\LOCALE_LL= and =\\LOCALE_CC=, " -"respectively." -msgstr "" -"This translation marker expands to the current locale information used by " -"centos-art.sh script. This value is " -"retrieved from the <envar>LANG</envar> environment variable and " -"should look like =LOCALE=. In case you need to retrieve " -"the language and country part separately one another, you can use the " -"=\\LOCALE_LL= and =\\LOCALE_CC=, " -"respectively." - -msgid "=\\REPO_TLDIR=" -msgstr "=\\REPO_TLDIR=" - -msgid "" -"This translation marker expands to the absolute path to <filename class=" -"\"directory\"> directory inside your workstation. For example, /home/al/Projects/CentOS/artwork/trunk+." -msgstr "" -"This translation marker expands to the absolute path to <filename class=" -"\"directory\"> directory inside your workstation. For example, /home/al/Projects/CentOS/artwork/trunk+." - -msgid "=\\REPO_HOME=, =\\TCAR_WORKDIR=" -msgstr "=\\REPO_HOME=, =\\TCAR_WORKDIR=" - -msgid "" -"This translation marker expands to the absolute path of your working copy. " -"For example, /home/al/Projects/CentOS/artwork." -msgstr "" -"This translation marker expands to the absolute path of your working copy. " -"For example, /home/al/Projects/CentOS/artwork." - -msgid "Bugs" -msgstr "Bugs" - -msgid "See https://centos.org.cu/bugs/" -msgstr "See https://centos.org.cu/bugs/" - -msgid "Authors" -msgstr "Authors" - -msgid "" -"The tcar_setTranslationMarkers function " -"has received contributions from the following people:" -msgstr "" -"The tcar_setTranslationMarkers function " -"has received contributions from the following people:" - -msgid "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" -msgstr "Alain Reguera Delgado <al@centos.org.cu>, =COPYRIGHT_YEAR_LIST=" - -msgid "License" -msgstr "License" - -msgid "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" -msgstr "Copyright © =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER=" - -msgid "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." -msgstr "" -"This program is free software; you can redistribute it and/or modify it " -"under the terms of the GNU General Public License as published by the Free " -"Software Foundation; either version 2 of the License, or (at your option) " -"any later version." - -msgid "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." -msgstr "" -"This program is distributed in the hope that it will be useful, but WITHOUT " -"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or " -"FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for " -"more details." - -msgid "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." -msgstr "" -"You should have received a copy of the GNU General Public License along with " -"this program; if not, write to the Free Software Foundation, Inc., 675 Mass " -"Ave, Cambridge, MA 02139, USA." - -#. Put one translator per line, in the form of NAME , YEAR1, YEAR2. -msgid "translator-credits" -msgstr "translator-credits" diff --git a/tcar-scripts-docs/Manpages/centos-art.sh.asciidoc b/tcar-scripts-docs/Manpages/centos-art.sh.asciidoc deleted file mode 100644 index 482bde1..0000000 --- a/tcar-scripts-docs/Manpages/centos-art.sh.asciidoc +++ /dev/null @@ -1,140 +0,0 @@ -centos-art.sh(1) -================ - -Name ----- - -centos-art.sh - The CentOS artwork repository automation tool. - -Synopsis --------- - -*centos-art.sh* [*--help*|*--version*]:: - Print information about *centos-art.sh* script itself. - -*centos-art.sh* *MODULE* [*--help|--version*]:: - Print information about the specified module. See <> - below to see which modules *centos-art.sh* script supports. - -Description ------------ - -*centos-art.sh* exists to standardize frequent tasks inside the CentOS -artwork repository. Inside *centos-art.sh* script, frequent tasks are -organized inside modules. - -When you execute the *centos-art.sh* script in a terminal, it requests -you to enter the absolute path of CentOS artwork repository in your -workstation. This information is required in order for *centos-art.sh* -to know where the repository directory structure you want to work with -is stored in. Later, once *centos-art.sh* knows where your copy of -CentOS artwork repository is stored in, it initializes configuration -variables and global functions. At this point, it continues reading -the command-line arguments to retrieve the module's name, process -common options next to it, store module-specific options and initiates -the module's environment by executing the module's initialization -script, based on the module's name retrieved from the command-line. - -[[modules]] -Modules -------- - -The *centos-art.sh* script supports the following modules: - -*prepare*:: - Standardize configuration tasks needed by your working copy (e.g., - verify whether required packages are installed or not in your - workstation, calls render module to produce images and manuals in - the correct order). This is the first task you should run in your - workstation, just after downloading a fresh working copy of CentOS - artwork repository. - -*render*:: - Standardize the way content is produced inside the repository. - This function relies on configuration files to do its work. - Whenever you need to produce images, documentation or localized - content this is the module you'll need to use. - -*locale*:: - Standardize the way translatable strings are retrieved from source - files and put into portable objects for you to edit. Portable - objects produced by this module are used by *render* module to - produce localized content. Whenever you need to produce the - intermediate files holding the translatable strings required to - produce localized content, use this module. - -*tuneup*:: - Standardize maintenance tasks frequently run inside the repository - (e.g., reset written by, copyright and license information inside - shell script's top-comments; transform probably malformed HTML - documents into valid documents, and remove unused tags inside SVG - documents.). - -[[options]] -Options -------- - -The *centos-art.sh* script supports the following options: - -*--help*:: - Print script documentation. - -*--version*:: - Print script version. - -*--debug*:: - Run the script in debugging mode. This option is very useful if - you want to get a closer look to the way modules are opened and - closed inside *centos-art.sh* script. - -*--quiet*:: - Run the script quietly. This option reduces the amount of - information the *centos-art.sh* script prints out when processing - source files. - -*--yes*:: - Run the script in affirmative mode. This is answering ``yes'' to - all ``yes or no'' questions. This option is useful when you run - *centos-art.sh* with the *--quiet* option. - -[[exit-status]] -Exit Status ------------ - -* 0 -- Exit successfully without errors. -* 1 -- Exit with errors. - -[[bugs]] -Bugs ----- - -* https://centos.org.cu/bugs/[https://centos.org.cu/bugs/] - -Author ------- - -The *centos-art.sh* script has received contribution from the -following people: - -* Alain Reguera Delgado , 2009-2013 - -Copyright ---------- - -Copyright (C) 2009-2013 The CentOS Artwork SIG - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -// vim: set syntax=asciidoc: diff --git a/tcar-scripts-docs/Manpages/render.conf b/tcar-scripts-docs/Manpages/render.conf deleted file mode 100644 index fef2aa6..0000000 --- a/tcar-scripts-docs/Manpages/render.conf +++ /dev/null @@ -1,63 +0,0 @@ -[centos-art.sh] -render-type = "asciidoc" -render-flow = "manpage" -render-from = "centos-art.sh.asciidoc" -locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/centos-art.sh.po" -formats = "xhtml manpage" -mansect = "1" - -[tcar_setModuleEnvironment.sh] -render-type = "asciidoc" -render-flow = "manpage" -render-from = "tcar_setModuleEnvironment.sh.asciidoc" -locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/tcar_setModuleEnvironment.sh.po" -formats = "xhtml manpage" -mansect = "1" - -[tcar_checkFiles.sh] -render-type = "asciidoc" -render-flow = "manpage" -render-from = "tcar_checkFiles.sh.asciidoc" -locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/tcar_checkFiles.sh.po" -formats = "xhtml manpage" -mansect = "1" - -[tcar_checkRepoDirSource.sh] -render-type = "asciidoc" -render-flow = "manpage" -render-from = "tcar_checkRepoDirSource.sh.asciidoc" -locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/tcar_checkRepoDirSource.sh.po" -formats = "xhtml manpage" -mansect = "1" - -[tcar_getConfigValue.sh] -render-type = "asciidoc" -render-flow = "manpage" -render-from = "tcar_getConfigValue.sh.asciidoc" -locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/tcar_getConfigValue.sh.po" -formats = "xhtml manpage" -mansect = "1" - -[tcar_getFilesList.sh] -render-type = "asciidoc" -render-flow = "manpage" -render-from = "tcar_getFilesList.sh.asciidoc" -locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/tcar_getFilesList.sh.po" -formats = "xhtml manpage" -mansect = "1" - -[tcar_printMessage.sh] -render-type = "asciidoc" -render-flow = "manpage" -render-from = "tcar_printMessage.sh.asciidoc" -locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/tcar_printMessage.sh.po" -formats = "xhtml manpage" -mansect = "1" - -[tcar_setTranslationMarkers.sh] -render-type = "asciidoc" -render-flow = "manpage" -render-from = "tcar_setTranslationMarkers.sh.asciidoc" -locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/tcar_setTranslationMarkers.sh.po" -formats = "xhtml manpage" -mansect = "1" diff --git a/tcar-scripts-docs/Manpages/tcar_checkFiles.sh.asciidoc b/tcar-scripts-docs/Manpages/tcar_checkFiles.sh.asciidoc deleted file mode 100644 index 7a0de6e..0000000 --- a/tcar-scripts-docs/Manpages/tcar_checkFiles.sh.asciidoc +++ /dev/null @@ -1,135 +0,0 @@ -tcar_checkFiles(1) -================== - -== Name - -tcar_checkFiles - Standardize constructions for file verifications. - -== Synopsis - -*cli_checkFiles [-d|-e|-f|-h|-x] LOCATION* - -== Description - -The *cli_checkFiles* exists to answer basic questions like ``Is -+LOCATION+ is a regular file?'' and ``Is +LOCATION+ a directory?''. -The answer to such questions affects the script execution flow in the -following way: when the answer positive (e.g., +LOCATION+ is a regular -file), the script passes the test silently and continues its -execution. When the answer is negative(e.g., +LOCATION+ is not a -regular file), the script finishes its execution immediately with an -error message. - -The *cli_checkFiles* function is exported to *centos-art.sh* script -environment in the very beginning of its execution and will be -available all along its execution lifetime. You can use this function -inside common and specific functions whenever you need to verify files -inside the The CentOS Artwork Repository. - -The *cli_checkFiles* function is available inside the *centos-art.sh* -script only as part of its execution environment. This function is -exported to *centos-art.sh* script just after executing the script -from the command-line and will be available all along the script -lifetime. So, you can use this function both in common and specific -functionalities of centos-art.sh script. - -The *cli_checkFiles* function doesn't create -subsequent execution environments. - -== Usage - -Use the *cli_checkFiles* function inside *centos-art.sh* script -whenever you need to control the script execution flow based on file -type (e.g., regular files, directories, links, etc.) verifications. - -== Options - -The *cli_checkFiles* function accepts the following options: - --d:: - Verifies whether +LOCATION+ exists and is a directory. If it - doesn't exists or isn't a directory, an error message is printed - and the script finishes its execution. Otherwise, if it exists - and is a directory, the script continues its execution normally. --e:: - Verifies whether +LOCATION+ exists or not. If it doesn't exist, an - error message is printed and the script finishes its execution. - Otherwise, if it does exists, the script continues its execution - normally. --f:: - Verifies whether +LOCATION+ exists and is a regular file. If it - doesn't exists or isn't a regular file, an error message is - printed and the script finishes its execution. Otherwise, if it - exists and is a regular file, the script continues its execution - normally. --h:: - Verifies whether +LOCATION+ exists and is a symbolic link. If it - doesn't exists or isn't a symbolic link, an error message is - printed and the script finishes its execution immediately. - Otherwise, if it does exist and is a symbolic link, the script - continue its execution normally. --x:: - Verifies whether +LOCATION+ exists and execution permission is - granted. If it doesn't exist or hasn't execution permission, the - script finishes its execution immediately. Otherwise, if it exists - and has execution permissions, the script continues its execution - normally. - -The value of the +LOCATION+ argument must be an absolute path to the -file you want to verify. If such file doesn't exists in any supported -form, the script finishes its execution with an error message. - -== Examples - -The following example was taken from *centos-art.sh* script -initialization phase. Notice the position of *cli_checkFiles* -function inside the loop. If some of the function files we need to -export doesn't have execution rights, *cli_checkFiles* will finish the -script execution immediately with an error message. - ----------------------------------------------------------------------- -for FUNCFILE in ${FUNCFILES};do - - # Verify the execution rights for function file. - cli_checkFiles -x ${FUNCFILE} - - # Initialize the function file. - . ${FUNCFILE} - - # Export the function names inside the file to current shell - # script environment. - export -f $(egrep "${PATTERN}" ${FUNCFILE} | gawk '{ print $2 }') - -done ----------------------------------------------------------------------- - -== Bugs - -See https://centos.org.cu/bugs/ - -== Authors - -The *tcar_checkFiles* function has received contributions from the -following people: - -- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= - -== License - -Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -// vim: set syntax=asciidoc: diff --git a/tcar-scripts-docs/Manpages/tcar_checkRepoDirSource.sh.asciidoc b/tcar-scripts-docs/Manpages/tcar_checkRepoDirSource.sh.asciidoc deleted file mode 100644 index 412d4e6..0000000 --- a/tcar-scripts-docs/Manpages/tcar_checkRepoDirSource.sh.asciidoc +++ /dev/null @@ -1,59 +0,0 @@ -tcar_checkRepoDirSource.sh(1) -============================= - -== Name - -tcar_checkRepoDirSource - Standardize the working copy's absolute path -construction. - -== Synopsis - -tcar_checkRepoDirSource "LOCATION" - -== Description - -The *tcar_checkRepoDirSource* function standardizes the path -construction to directories inside it the working copy, using absolute -paths. This function transforms relative paths passed as non-option -arguments to *centos-art.sh* script command-line into absolute paths -inside the working copy and verifies whether they really exist as -directories inside the working copy or not. If the path provided -doesn't exist as directory inside the working copy, the script will -finish its execution immediately with an error message. Otherwise, if -the directory exists, the variable +TCAR_ARGUMENTS+ is redefined with -the related absolute path for further use. - -Use the *tcar_checkRepoDirSource* function whenever you need to be -sure that non-option arguments passed to *centos-art.sh* script -command-line will always point to directories inside the working copy. - -== Bugs - -See https://centos.org.cu/bugs/ - -== Authors - -The *tcar_checkRepoDirSource* function has received contributions from -the following people: - -- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= - -== License - -Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -// vim: set syntax=asciidoc: diff --git a/tcar-scripts-docs/Manpages/tcar_getConfigValue.sh.asciidoc b/tcar-scripts-docs/Manpages/tcar_getConfigValue.sh.asciidoc deleted file mode 100644 index bd5002e..0000000 --- a/tcar-scripts-docs/Manpages/tcar_getConfigValue.sh.asciidoc +++ /dev/null @@ -1,72 +0,0 @@ -tcar_getConfigValue.sh(1) -========================= - -== Name - -tcar_getConfigValue - Standardize options retrieval from configuration -files. - -== Synopsis - -*tcar_getConfigValue FILE SECTION OPTION* - -== Description - -The *tcar_getConfigValue* function standardizes the way option values -are retrieved from configuration files. As convention, -*tcar_getConfigValue* uses the output produced by -*tcar_getConfigLines* as input to retrieve the option values. As -convention, in +option = "value"+ lines, the values retrieved are -always on the right side. The values retrieved are also output without -quotation and translation markers already expanded. - -The *tcar_getConfigValue* function accepts the -following arguments: - -FILE:: - This argument specifies the absolute path to the configuration - file you want to retrieve the value from. For example, - ``+${TCAR_WORKDIR}/Identity/Models/Themes/Default/Distro/5/Anaconda/branding.conf+''. - -SECTION:: - This argument specifies the name of the section related to the - configuration line you want to retrieve the value from. For - example, ``symbols'' without brackets. - -OPTION:: - This argument specifies the name of the option you want to - retrieve the value from. - -Use the *tcar_getConfigValue* function whenever you want to retrieve -values from configuration files in a controlled way. - -== Bugs - -See https://centos.org.cu/bugs/ - -== Authors - -The *tcar_checkFiles* function has received contributions from the -following people: - -- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= - -== License - -Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -// vim: set syntax=asciidoc: diff --git a/tcar-scripts-docs/Manpages/tcar_getFilesList.sh.asciidoc b/tcar-scripts-docs/Manpages/tcar_getFilesList.sh.asciidoc deleted file mode 100644 index 8ca537d..0000000 --- a/tcar-scripts-docs/Manpages/tcar_getFilesList.sh.asciidoc +++ /dev/null @@ -1,107 +0,0 @@ -tcar_getFilesList.sh(1) -======================= - -== Name - -tcar_getFilesList - Create customized list of files for further -processing. - -== Synopsis - -*tcar_getFilesList [--pattern|--mindepth|--maxdepth|--type|--uid] LOCATION* - -== Description - -The *tcar_getFilesList* standardizes the way list of files are built -inside the *centos-art.sh* script. This function outputs a sorted and -unique list of files based on the options and location provided as -argument. This function is an interface to the *find* command. Don't -use *find* command directly inside the centos-art.sh script. Instead, -use the *tcar_getFilesList* function. - -The +LOCATION+ arguments must be the absolute path to a directory and -specifies where the search of files in any form (e.g., directories, -links, etc.) will take place in. If +LOCATION+ isn't a directory, the -script finishes its execution with an error message. - -The *tcar_getFilesList* accepts the following options: - ---pattern="REGEX":: - This option specifies a posix-egrep type regular expression as - value. This regular expression is applied to path specified in - +LOCATION+ argument. Only file paths that match this regular - expression inside +LOCATION+ directory will be included in the - final list of files. By default, if this option is not provided, - the ``+^/.*[[:alnum:]_/-]+$+'' regular expression - is used. -+ -When you use the *tcar_getFilesList* you don't need to specified the -absolute path of files you want to look for. This is something -*tcar_getFilesList* already does for you. When you use this function, -the value you pass as regular expression isn't the final regular -expression used. Instead, the regular expression you pass is used to -build the final regular expression passed to *find* command. The -final regular expression passed to find is ``+^/.*${PATTERN}$+'', -where +${PATTERN}+ is the value you passed to *--pattern* option as -REGEX. - ---mindepth="NUMBER":: - This option specifies the minimal +NUMBER+ of levels deep the - search should go under the directory +LOCATION+ specified. For - example, if you specify *--mindepth="2"* the search will start two - levels deep considering the path provided as section. - ---maxdepth="NUMBER":: - This option specifies the maximum +NUMBER+ of levels deep the - search should go under the directory +LOCATION+ specified. For - example, if you specify *--maxdepth="2"* the search will begin in - the very same directory path you provided as +LOCATION+ and stop - two levels deep using it as section. - ---type="STRING":: - This option specifies the type of files being searched. This - option accepts the same values the *find* *-type* option does. - However, the following +STRING+ values are the most used inside - the script so far: -+ -- d — directory. -- f — regular file. - ---uid="NUMBER":: - This option specifies the numeric user id of the files you want to - search. Only files that match this numeric user id will be added - to the final list of files. - -Use the *tcar_getFilesList* whenever you need to build list of files -for further processing. - -== Bugs - -See https://centos.org.cu/bugs/ - -== Authors - -The *tcar_checkFiles* function has received contributions from the -following people: - -- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= - -== License - -Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -// vim: set syntax=asciidoc: diff --git a/tcar-scripts-docs/Manpages/tcar_printMessage.sh.asciidoc b/tcar-scripts-docs/Manpages/tcar_printMessage.sh.asciidoc deleted file mode 100644 index 7db2ed8..0000000 --- a/tcar-scripts-docs/Manpages/tcar_printMessage.sh.asciidoc +++ /dev/null @@ -1,192 +0,0 @@ -tcar_printMessage.sh(1) -======================= - -== Name - -tcar_printMessage.sh - Print customized messages in standard ways. - -== Synopsis - -*tcar_printMessage "MESSAGE" [--as-separator-line|--as-banner-line|--as-cropping-line|--as-tuningup-line|--as-checking-line|--as-combining-line|--as-creating-line|--as-reading-line|--as-savedas-line|--as-linkto-line|--as-movedto-line|--as-validating-line|--as-template-line|--as-configuration-line|--as-palette-line|--as-reponse-line|--as-request-line|--as-selection-line|--as-error-line|--as-toknowmore-line|--as-yesornorequest-line|--as-notrailingnew-line|--as-stdout-line|--as-stderr-line]* - -== Description - -The *tcar_printMessage* function standardizes the way centos-art.sh -scirpt prints messages. By default, centos-art.sh script prints all -messages to the standard output with the exception of those messages -printed with the *--as-stderr-line* option, which are printed to -standard error output instead. - -The *tcar_printMessage* function requires two arguments. The first -argument specifies the message you want to print and the second -argument specifies the format you'll use to print that message. -Because this function is so used inside the centos-art.sh script, it -is convenient to provide localization to strings passed as +MESSAGE+ -using *gettext* constructions when they aren't paths. - -== Options - -The *tcar_printMessage* function accepts the following format options -as second argument: - ---as-separator-line:: - This format takes the first character passed as +MESSAGE+ and - repeats it horizontally to build a separator line. Use this - format whenever you need to create a logical separation between - different actions. - ---as-banner-line:: - This format takes the string passed as +MESSAGE+ and puts it - inside two horizontal separator lines. Use this format whenever - you need to print header information for following lines. - ---as-cropping-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file has been cropped. - ---as-tuningup-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file has been tuned-up. - ---as-checking-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file has been checked or - verified (e.g., through *tcar_checkFiles* functionality). - ---as-combining-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file has been combined. - ---as-creating-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file has been created. - ---as-reading-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file has been read. - ---as-savedas-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file has been saved. - ---as-linkto-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file has been linked. - ---as-movedto-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file has been moved. - ---as-validating-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file has been validated. - ---as-template-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file is a template or - design model. - ---as-configuration-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file is a configuration - file. - ---as-palette-line:: - This format is for two columns messages where +MESSAGE+ generally - refers to a file inside the repository. Use this format whenever - you need to imply the fact that certain file is a palette of - colors. - ---as-response-line:: - This format adds +-->+ at the beginning of the string passed as - +MESSAGE+. Use this format whenever you need to imply the fact - that certain file is considered part of a response. For example, - when you need to express that a group of files will take certain - action, you can use this option to doing so. - ---as-request-line:: - This format prints +MESSAGE+ without trailing new line. Use this - format whenever you need to imply a question or yes or no request. - ---as-selection-line:: - This format uses each word in +MESSAGE+ as item of a selection - list. Use this format whenever you need to select one of the items - provided as +MESSAGE+. - ---as-error-line:: - This format prints error messages produced by centos-art.sh - script. It uses the *caller* built-in command to display the line - number and the filename where such error was triggered. Later, it - prints where to find more information by using the - *--as-toknowmore-line* option. - ---as-toknowmore-line:: - This format takes a function name as +MESSAGE+ and prints the - command you can use to find more information about it. When this - option is passed the script finishes its execution immediately. - This option is used in combination with *--as-error-line* to - finish the script execution after an error. - ---as-yesornorequest-line:: - This format takes a question as +MESSAGE+ and reads a yes or no - answer. When answer is negative, the script finishes its execution - immediately. When answer is affirmative, the script continues its - execution normally. - ---as-notrailingnew-line:: - Print +MESSAGE+ without any trailing - newline. - ---as-stdout-line:: - Print +MESSAGE+ to standard output. - ---as-stderr-line:: - Print +MESSAGE+ to standard error output. - -== Examples - -... - -== Bugs - -See https://centos.org.cu/bugs/ - -== Authors - -The *tcar_printMessage* function has received contributions from the -following people: - -- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= - -== License - -Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -// vim: set syntax=asciidoc: -// vim: set syntax=asciidoc: diff --git a/tcar-scripts-docs/Manpages/tcar_setModuleEnvironment.sh.asciidoc b/tcar-scripts-docs/Manpages/tcar_setModuleEnvironment.sh.asciidoc deleted file mode 100644 index cc0ebef..0000000 --- a/tcar-scripts-docs/Manpages/tcar_setModuleEnvironment.sh.asciidoc +++ /dev/null @@ -1,99 +0,0 @@ -tcar_setModuleEnvironment.sh(1) -=============================== - -Name ----- - -tcar_setModuleEnvironment.sh - Initiate module environments. - -Synopsis --------- - -*tcar_setModuleEnvironment [-m "MODULE_NAME"] [-t "MODULE_TYPE"] [-g MODULE_ARGUMENT] ...* - -Description ------------ - -[[options]] -Options -------- - -The *tcar_setModuleEnvironment* function accepts the following -options: - --m :: - This option specifies the name of the module you want to load. --t:: - This option specifies the type of the module you want to load. - Modules can be one of the following types: -+ -top-module;; - This modules are stored in the first level of Modules directory. - This type of modules initiate module environments for specific - tasks so it can be called from anywhere inside *centos-art.sh* - script. -sub-module;; - This modules are stored from the second-level of Modules directory - on. This type of modules can be executed from top-modules, - sub-modules, or sib-modules but never the *centos-art.sh* file - itself. -sib-module;; - This modules are stored from the second-level of Modules directory - on. This type of modules can be executed from sub-modules or - sib-modules, but never top-modules or the *centos-art.sh* file - itself. --g:: - This option specifies the module-specific option you want to pass - for processing in the module environment you are about to execute. - Generally, module-specific options are passed through - *centos-art.sh* command-line but you may need to pass them - internally in some cases (e.g., you are executing a top-module - from a sub-module). If you need to pass more than one option, then - you need to put the -g option before each option you want to pass. - -Bugs ----- - -In the very beginning of *tcar_setModuleEnvironment* function, it used -just non-array variables and it worked fine for top-module and sub-module -processing, however when it was needed to do sibling processing, it -didn't work as expected. The failure was produced because a wrong -variable assignment when tried to set the path of the next module to -load. There was not a clean way to ``remember'' what was the base -directory of the parent directory, so it ended up using the last -loaded module base directory which made impossible to load a sibling -module. The *tcar_setModuleEnvironment* function as implemented in -version 0.5 of The CentOS Artwork Repository, fixes this issue -replacing non-array variables by array variables which can remember -module information. - -See also: https://centos.org.cu/bugs/[https://centos.org.cu/bugs/] - -Author ------- - -The *centos-art.sh* script has received contribution from the -following people: - -* Alain Reguera Delgado , 2009-2013 - -Copyright ---------- - -Copyright (C) 2009-2013 The CentOS Artwork SIG - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -// vim: set syntax=asciidoc: diff --git a/tcar-scripts-docs/Manpages/tcar_setTranslationMarkers.sh.asciidoc b/tcar-scripts-docs/Manpages/tcar_setTranslationMarkers.sh.asciidoc deleted file mode 100644 index 3474df9..0000000 --- a/tcar-scripts-docs/Manpages/tcar_setTranslationMarkers.sh.asciidoc +++ /dev/null @@ -1,199 +0,0 @@ -tcar_setTranslationMarkers(1) -============================= - -== Name - -tcar_setTranslationMarkers - Expands translation markers. - -== Synopsis - -*tcar_setTranslationMarkers "FILE"* - -== Description - -The *cli_setTranslationMarkers* standardizes construction of -translation markers and their related expansion. As convention, -translation markers are set inside source files (e.g., DocBook, SVG) -and expanded inside temporal instances used to produce final contents. -The +FILE+ argument should point to the temporal file where -translation markers expansion takes place in. - -Translation markers written in source files must comply the -++=[A-Z_]+=++ regular expression pattern. For example, -+=UNKNOWN_MARKER=+ is a valid translation marker without any -replacement. To prevent *centos-art.sh* script from -expanding translation markers, add a backslash (+\+) between the first -equal sign and the following letter. For example, +=\...=+ won't be -expanded. - -The *cli_setTranslationMarkers* supports the following translation -markers: - -+=\COPYRIGHT_YEAR_LAST=+, +=\COPYRIGHT_YEAR=+:: - These translation markers expand to the last year used in - copyright notes. For example, +=COPYRIGHT_YEAR_LAST=+. - -+=\COPYRIGHT_YEAR_LIST=+, +=\COPYRIGHT_YEARS_LIST=+:: - This translation markers expand to the list of years used in - copyright notes. For example, +=COPYRIGHT_YEARS_LIST=+. The first - year represents the time we began to work on The CentOS Artwork - Repository. - -+=\COPYRIGHT_HOLDER=+:: - This translation marker expands to the holder used in copyright - notes. For example, +=COPYRIGHT_HOLDER=+. - -+=\COPYRIGHT_HOLDER_PREDICATE=+:: - This translation marker expands both the holder and the predicate - used in copyright notes. For example, - +=COPYRIGHT_HOLDER_PREDICATE=+. - -+=\BRAND=+:: - This translation marker expands to the brand name used on files - names and URLs inside The CentOS Artwork Repository. For example, - +=BRAND=+. - -+=\LICENSE=+:: - This translation marker expands to the license information used in - files created by *centos-art.sh* script. For - example, +=LICENSE=+. - -+=\LICENSE_URL=+:: - This translation marker expands to the license URL used in files - created by *centos-art.sh* script. For example, - +=LICENSE_URL=+. - -+=\THEME=+:: - This translation marker expands to the theme portion of path you - are producing through centos-art.sh script. As consequence, this - translation marker should be used in situations where you are - producing theme components only. This translation marker expands - its value by retrieving the theme part of the path you provide as - non-option argument to *centos-art.sh* script. - For example, if you provide the path - +Identity/Images/Themes/Modern/2/Distro/5+, - this translation will expand to the +Modern/2/+ value. -+ -In case you need to retrieve the theme name or version separately one -another, then you can use the +=\THEMENAME=+ and +=\THEMERELEASE=+ -translation markers, respectively. When you use these translation -markers, forward slashes are removed from result. So, if you provide -the path -+Identity/Images/Themes/Modern/2/Distro/5+, -+=\THEMENAME=+ will expand to +Modern+ and +=THEMERELEASE=+ will -expand to +2+. - -+=\RELEASE=+:: - This translation marker expands to the current release information - of your CentOS distribution. By default this information is - retrieved from +/etc/redhat-release+. In case - the option *--release* be passed, the value specified with it will - overwrite the default value and will be this the one used as - section for this translation marker to retrieve the release - information. So, for example, if you are running a CentOS-5.8 - distribution and no *--release* option is passed to - *centos-art.sh* script, this translation marker - expands to +5.8+. On the other hand, if you are still running a - CentOS-5.8 distribution but provide the *--release=6.3* option to - *centos-art.sh* script, this translation marker - expands to +6.3+ instead. -+ -In case you need to retrieve minor and major release numbers -separately one another, then you can use the +=\MINOR_RELEASE=+ and -+=\MAJOR_RELEASE=+ translation makers, respectively. - -+=\ARCH=+:: - This translation marker expands to the current architecture of - your CentOS Distribution. By default this information is retrieved - from *uname -i*. In case the option *--arch* be - passed, the value specified with it will overwrite the default - value and will be the one used as section. For example, if the - *uname -i* outputs the line - i386, this translation marker - will expand to +i386+. On the other hand, if you pass the - *--arch=x86_64* option to *centos-art.sh* script, - this translation marker will expand to +x86_64+ instead. - -+=\URL=+:: This translation marker expands to the URL which points to -The CentOS Project home page. For example, +=URL=+. In case you are -using the centos-art.sh script in a different locale but English -(+en_US.UTF-8+), this translation marker expands as usual but with the -language information appended to the end of the string. For example, -if you are executing the centos-art.shscript for Spanish locale (e.g., -+es_ES.UTF-8+), this translation marker expands to +=URL=es/+. -+ -In case you need to expand other URL related to The CentOS Project -domain, use translation markers described in -<>. Likewise =\URL=, translation -markers described in <> does append -the current language information to the end of the URL string based on -the locale information you are currently executing the *centos-art.sh* -script. - -[[url-related-translation-markers]] -.URL-related translation markers --------------------`----------------- -Translation Marker Expands To -------------------------------------- -=\URL_WIKI= =URL_WIKI= -=\URL_LISTS= =URL_LISTS= -=\URL_FORUMS= =URL_FORUMS= -=\URL_MIRRORS= =URL_MIRRORS= -=\URL_DOCS= =URL_DOCS= -=\URL_PROJECTS= =URL_PROJECTS= -=\URL_SVN= =URL_SVN= -=\URL_TRAC= =URL_TRAC= -=\URL_PLANET= =URL_PLANET= -------------------------------------- - -+=\MAIL_DOCS=+:: - This translation marker expands to CentOS documentation mailing - list address. For example, +=MAIL_DOCS=+. - -+=\LOCALE=+:: - This translation marker expands to the current locale information - used by *centos-art.sh* script. This value is - retrieved from the LANG environment variable and - should look like +=LOCALE=+. In case you need to retrieve the - language and country part separately one another, you can use the - +=\LOCALE_LL=+ and +=\LOCALE_CC=+, respectively. - -+=\REPO_TLDIR=+:: - This translation marker expands to the absolute path to + directory inside your workstation. For - example, +/home/al/Projects/CentOS/artwork/trunk+. - -+=\REPO_HOME=+, +=\TCAR_WORKDIR=+:: - This translation marker expands to the absolute path of your - working copy. For example, +/home/al/Projects/CentOS/artwork+. - -== Bugs - -See https://centos.org.cu/bugs/ - -== Authors - -The *tcar_setTranslationMarkers* function has received contributions -from the following people: - -- Alain Reguera Delgado , =COPYRIGHT_YEAR_LIST= - -== License - -Copyright (C) =COPYRIGHT_YEAR_LIST= =COPYRIGHT_HOLDER= - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or (at -your option) any later version. - -This program is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -// vim: set syntax=asciidoc: diff --git a/tcar-scripts-docs/Understanding_Modules/Locales/en_US/understanding_modules.asciidoc.po b/tcar-scripts-docs/Understanding_Modules/Locales/en_US/understanding_modules.asciidoc.po deleted file mode 100644 index 8e5cef6..0000000 --- a/tcar-scripts-docs/Understanding_Modules/Locales/en_US/understanding_modules.asciidoc.po +++ /dev/null @@ -1,2127 +0,0 @@ -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" diff --git a/tcar-scripts-docs/Understanding_Modules/render.conf b/tcar-scripts-docs/Understanding_Modules/render.conf deleted file mode 100644 index 046b3dd..0000000 --- a/tcar-scripts-docs/Understanding_Modules/render.conf +++ /dev/null @@ -1,9 +0,0 @@ -[understanding_modules.html] -render-type = "asciidoc" -render-flow = "article" -render-from = "understanding_modules.asciidoc" -locale-from = "Locales/${TCAR_SCRIPT_LANG_LC}/understanding_modules.asciidoc.po" -images-from = "${TCAR_BASEDIR}/Artworks/Icons/Webenv/Final" -styles-from = "${TCAR_BASEDIR}/Artworks/Webenv/Docbook/1.69.1/Css" -formats = "xhtml" -render-page = "single chunks" diff --git a/tcar-scripts-docs/Understanding_Modules/understanding_modules.asciidoc b/tcar-scripts-docs/Understanding_Modules/understanding_modules.asciidoc deleted file mode 100644 index 6b2f156..0000000 --- a/tcar-scripts-docs/Understanding_Modules/understanding_modules.asciidoc +++ /dev/null @@ -1,994 +0,0 @@ -Understanding Modules -===================== -Alain Reguera Delgado -v0.1, Oct 2013 - -Overview --------- - -From version 0.5, *centos-art.sh* script implements the idea of -modules to its base design. Modules are a collection of functions -written in Bash that can call themselves 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). - -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 they work. 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. - -[[module-environment]] -Module Environment ------------------- - -When you execute the *centos-art.sh* script you create an execution -environment in which variables and functions are defined. This -execution environment is the higher environment inside *centos-art.sh* -script. It is considered to have a ``global'' scope, so variables and -functions defined inside it are always available for any function -execution made from it. You can control the execution environment of -*centos-art.sh* script through +centos-art.sh+ and -+centos-art.conf.sh+ files. These files don't provide too much -functionality so specific module environments are executed from -+centos-art.sh+ at demand, to extend its functionality. - -Module environments are made of small functions that perform small -tasks and can be further executed in a specific order to produce a -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.'' - -[[parent-modules-environment]] -Parent Modules -~~~~~~~~~~~~~~ - -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. - -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. - -[[debug-parent-modules]] -.Debugging execution of parent modules -====================================================================== ----------------------------------------------------------------------- -Thu 10 Oct 2013 11:53:28 PM CDT =========================> [0] | main -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_BASEDIR Automation/Modules -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_NAME [0]=hello -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_TYPE parent -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_ARGUMENT --greeting=hi -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs -Thu 10 Oct 2013 11:53:28 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh -Thu 10 Oct 2013 11:53:28 PM CDT TEXTDOMAIN hello.sh -Thu 10 Oct 2013 11:53:28 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales -Thu 10 Oct 2013 11:53:28 PM CDT export -f hello -Thu 10 Oct 2013 11:53:28 PM CDT export -f hello_getOptions -Thu 10 Oct 2013 11:53:28 PM CDT -------------------------> hello --greeting=hi -hi -Thu 10 Oct 2013 11:53:28 PM CDT <------------------------- hello -Thu 10 Oct 2013 11:53:28 PM CDT unset -f hello -Thu 10 Oct 2013 11:53:28 PM CDT unset -f hello_getOptions -Thu 10 Oct 2013 11:53:28 PM CDT <========================= [0] | main ----------------------------------------------------------------------- -====================================================================== - -<> 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 -<>. - -Summary -~~~~~~~ - -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. - -[[module-implementation]] -Module Implementation ---------------------- - -The *centos-art.sh* script implements module environments inside the -``+Modules+'' directory, as described in <>. - -[[module-implementation-parent]] -Parent Modules -~~~~~~~~~~~~~~ - -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 <>. - -[[parent-module-layout]] -.Directory layout used by parent modules -====================================================================== ----------------------------------------------------------------------- -. -|-- COPYING <1> -|-- Locales/ <2> -|-- Manuals/ <3> -|-- Modules/ <4> -| `-- Hello/ <5> -| |-- hello.sh <6> -| `-- hello_getOptions.sh <7> -|-- Scripts/ <8> -|-- centos-art.conf.sh <9> -`-- centos-art.sh <10> ----------------------------------------------------------------------- - -<1> Script's copying conditions. -<2> Script's localization files. -<3> Script's documentation files. -<4> Script's modules. Here is where you store parent modules. -<5> Parent directory of module named hello. -<6> Initialization file of module named hello. -<7> Function related to module named hello. -<8> Script's global functions. -<9> Script's configuration file. -<10> Script's initialization file. -====================================================================== - -<> 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 <>. - -[[module-init-file]] -The Initialization File -~~~~~~~~~~~~~~~~~~~~~~~ - -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 -<>. - -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. - -[[initialization-file]] -.Initialization file used by hello module -====================================================================== ----------------------------------------------------------------------- -#!/bin/bash -###################################################################### -# -# hello.sh -- Print out greetings to standard output and exit -# successfully. -# -# Written by: -# * Alain Reguera Delgado , 2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function hello { - - tcar_printMessage "`gettext "Hello, World!"`" --as-stdout-line - -} ----------------------------------------------------------------------- -====================================================================== - -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 <>. - -Summary -~~~~~~~ - -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. - -[[module-optimization]] -Module Optimization -------------------- - -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''. - -[[related-functions]] -Related Functions -~~~~~~~~~~~~~~~~~ - -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 <>. - -[[initialization-file-extended]] -.Initialization file used by hello module (extended) -====================================================================== ----------------------------------------------------------------------- -function hello { - - # Define default greeting message. - local HELLO_WORLD="`gettext "Hello, World!"`" - - # Define actions variable. Here is where actions related to - # module-specific options are stored in for further processing. - local ACTIONS='' - - # Interpret module-specific options and store related actions. - hello_getOptions - - # Print greeting message - if [[ -z ${ACTIONS} ]];then - # Using parent module. - tcar_printMessage "${HELLO_WORLD}" --as-stdout-line - else - # Using child module. - tcar_setModuleEnvironment -m 'output' -t 'child' - fi - -} ----------------------------------------------------------------------- -====================================================================== - -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. - -<> 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. - -[[hello_getOptions-definition]] -.Related function definition (hello_getOptions) -====================================================================== ----------------------------------------------------------------------- -function hello_getOptions { - - # Define short options we want to support. - local ARGSS="h::,v,g:,l,u,c,r" - - # Define long options we want to support. - local ARGSL="help::,version,greeting:,lower,upper,camel,random" - - # Redefine arguments using getopt(1) command parser. - tcar_setModuleArguments - - # Reset positional parameters on this function, using output - # produced from (getopt) arguments parser. - eval set -- "${TCAR_MODULE_ARGUMENT}" - - # Look for options passed through command-line. - while true; do - case "${1}" in - - -h | --help ) - tcar_printHelp "${2}" - ;; - - -v | --version ) - tcar_printVersion "${TCAR_MODULE_NAME}" - ;; - - -g | --greeting ) - HELLO_WORLD="${2:-${HELLO_WORLD}}" - shift 2 - ;; - - -l | --lower ) - ACTIONS="lower ${ACTIONS}" - shift 1 - ;; - - -u | --upper ) - ACTIONS="upper ${ACTIONS}" - shift 1 - ;; - - -c | --camel ) - ACTIONS="camel ${ACTIONS}" - shift 1 - ;; - - -r | --random ) - ACTIONS="random ${ACTIONS}" - shift 1 - ;; - - -- ) - shift 1 - break - ;; - esac - done - - # Redefine arguments using current positional parameters. Only - # paths should remain as arguments, at this point. - TCAR_MODULE_ARGUMENT="${@}" - -} ----------------------------------------------------------------------- -====================================================================== - -[IMPORTANT] -<> 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. - -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. - -[[child-modules]] -Child Modules -~~~~~~~~~~~~~ - -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. - -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 <>. - -[[debug-child-modules]] -.Debugging execution of child modules -====================================================================== ----------------------------------------------------------------------- -Thu 10 Oct 2013 11:52:41 PM CDT =========================> [0] | main -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [0]=hello -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE parent -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT --upper --greeting=hi -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh -Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAIN hello.sh -Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales -Thu 10 Oct 2013 11:52:41 PM CDT export -f hello -Thu 10 Oct 2013 11:52:41 PM CDT export -f hello_getOptions -Thu 10 Oct 2013 11:52:41 PM CDT -------------------------> hello --upper --greeting=hi -Thu 10 Oct 2013 11:52:41 PM CDT =========================> [1] | hello -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [1]=output -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE child -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST output -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh -Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAIN output.sh -Thu 10 Oct 2013 11:52:41 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales -Thu 10 Oct 2013 11:52:41 PM CDT export -f output -Thu 10 Oct 2013 11:52:41 PM CDT -------------------------> output -Thu 10 Oct 2013 11:52:41 PM CDT =========================> [2] | output -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_NAME [2]=upper -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_TYPE child -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_ARGUMENT -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_LIST camel|lower|random|upper -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Upper -Thu 10 Oct 2013 11:52:41 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Upper/Modules -Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Upper/Manuals -Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales -Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Upper/Configs -Thu 10 Oct 2013 11:52:42 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Upper/upper.sh -Thu 10 Oct 2013 11:52:42 PM CDT TEXTDOMAIN upper.sh -Thu 10 Oct 2013 11:52:42 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales -Thu 10 Oct 2013 11:52:42 PM CDT export -f upper -Thu 10 Oct 2013 11:52:42 PM CDT -------------------------> upper -HI -Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- upper -Thu 10 Oct 2013 11:52:42 PM CDT unset -f upper -Thu 10 Oct 2013 11:52:42 PM CDT <========================= [2] | output -Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- output -Thu 10 Oct 2013 11:52:42 PM CDT unset -f output -Thu 10 Oct 2013 11:52:42 PM CDT <========================= [1] | hello -Thu 10 Oct 2013 11:52:42 PM CDT <------------------------- hello -Thu 10 Oct 2013 11:52:42 PM CDT unset -f hello -Thu 10 Oct 2013 11:52:42 PM CDT unset -f hello_getOptions -Thu 10 Oct 2013 11:52:42 PM CDT <========================= [0] | main ----------------------------------------------------------------------- -====================================================================== - -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. - -[[sibling-modules]] -Sibling Modules -~~~~~~~~~~~~~~~ - -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 <>. - -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*. - -[[debug-sibling-modules]] -.Debugging execution of sibling modules -====================================================================== ----------------------------------------------------------------------- -Thu 10 Oct 2013 11:51:42 PM CDT =========================> [0] | main -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_BASEDIR Automation/Modules -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_NAME [0]=hello -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_TYPE parent -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_ARGUMENT --camel --greeting=hi -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs -Thu 10 Oct 2013 11:51:42 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh -Thu 10 Oct 2013 11:51:42 PM CDT TEXTDOMAIN hello.sh -Thu 10 Oct 2013 11:51:42 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales -Thu 10 Oct 2013 11:51:43 PM CDT export -f hello -Thu 10 Oct 2013 11:51:43 PM CDT export -f hello_getOptions -Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> hello --camel --greeting=hi -Thu 10 Oct 2013 11:51:43 PM CDT =========================> [1] | hello -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [1]=output -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE child -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST output -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh -Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN output.sh -Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales -Thu 10 Oct 2013 11:51:43 PM CDT export -f output -Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> output -Thu 10 Oct 2013 11:51:43 PM CDT =========================> [2] | output -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [2]=camel -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE child -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Camel -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Camel/Modules -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Camel/Manuals -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Camel/Locales -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Camel/Configs -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Camel/camel.sh -Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN camel.sh -Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Camel/Locales -Thu 10 Oct 2013 11:51:43 PM CDT export -f camel -Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> camel -Thu 10 Oct 2013 11:51:43 PM CDT =========================> [3] | camel -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [3]=upper -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE sibling -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Upper -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Upper/Modules -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Upper/Manuals -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Upper/Configs -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Upper/upper.sh -Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAIN upper.sh -Thu 10 Oct 2013 11:51:43 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Upper/Locales -Thu 10 Oct 2013 11:51:43 PM CDT export -f upper -Thu 10 Oct 2013 11:51:43 PM CDT -------------------------> upper -H -Thu 10 Oct 2013 11:51:43 PM CDT <------------------------- upper -Thu 10 Oct 2013 11:51:43 PM CDT unset -f upper -Thu 10 Oct 2013 11:51:43 PM CDT <========================= [3] | camel -Thu 10 Oct 2013 11:51:43 PM CDT =========================> [3] | camel -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_NAME [3]=lower -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_TYPE sibling -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_ARGUMENT -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_LIST camel|lower|random|upper -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Lower -Thu 10 Oct 2013 11:51:43 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Lower/Modules -Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Lower/Manuals -Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Lower/Locales -Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Lower/Configs -Thu 10 Oct 2013 11:51:44 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Lower/lower.sh -Thu 10 Oct 2013 11:51:44 PM CDT TEXTDOMAIN lower.sh -Thu 10 Oct 2013 11:51:44 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Lower/Locales -Thu 10 Oct 2013 11:51:44 PM CDT export -f lower -Thu 10 Oct 2013 11:51:44 PM CDT -------------------------> lower -i -Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- lower -Thu 10 Oct 2013 11:51:44 PM CDT unset -f lower -Thu 10 Oct 2013 11:51:44 PM CDT <========================= [3] | camel -Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- camel -Thu 10 Oct 2013 11:51:44 PM CDT unset -f camel -Thu 10 Oct 2013 11:51:44 PM CDT <========================= [2] | output -Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- output -Thu 10 Oct 2013 11:51:44 PM CDT unset -f output -Thu 10 Oct 2013 11:51:44 PM CDT <========================= [1] | hello -Thu 10 Oct 2013 11:51:44 PM CDT <------------------------- hello -Thu 10 Oct 2013 11:51:44 PM CDT unset -f hello -Thu 10 Oct 2013 11:51:44 PM CDT unset -f hello_getOptions -Thu 10 Oct 2013 11:51:44 PM CDT <========================= [0] | main ----------------------------------------------------------------------- -====================================================================== - -<> 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._ - -[[recursive-modules]] -Recursive Modules -~~~~~~~~~~~~~~~~~ - -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 -<>. - -[CAUTION] -When you execute modules recursively, you should be very careful not -to get trapped into an endless loop. - -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. - -[[debug-recursive-modules]] -.Processing execution of modules recursively -====================================================================== ----------------------------------------------------------------------- -Thu 10 Oct 2013 11:50:03 PM CDT =========================> [0] | main -Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_BASEDIR Automation/Modules -Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_NAME [0]=hello -Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_TYPE parent -Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_ARGUMENT --random --greeting=Hello -Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_LIST hello|help|locale|prepare|render|tuneup|vcs -Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello -Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules -Thu 10 Oct 2013 11:50:03 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Manuals -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Locales -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Configs -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/hello.sh -Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN hello.sh -Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Locales -Thu 10 Oct 2013 11:50:04 PM CDT export -f hello -Thu 10 Oct 2013 11:50:04 PM CDT export -f hello_getOptions -Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> hello --random --greeting=Hello -Thu 10 Oct 2013 11:50:04 PM CDT =========================> [1] | hello -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_NAME [1]=output -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_TYPE child -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_ARGUMENT -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_LIST output -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Manuals -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Locales -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Configs -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/output.sh -Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN output.sh -Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Locales -Thu 10 Oct 2013 11:50:04 PM CDT export -f output -Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> output -Thu 10 Oct 2013 11:50:04 PM CDT =========================> [2] | output -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_BASEDIR Automation/Modules/Hello/Modules/Output/Modules -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_NAME [2]=random -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_TYPE child -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_ARGUMENT -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_LIST camel|lower|random|upper -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR Automation/Modules/Hello/Modules/Output/Modules/Random -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MODULES Automation/Modules/Hello/Modules/Output/Modules/Random/Modules -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_MANUALS Automation/Modules/Hello/Modules/Output/Modules/Random/Manuals -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_LOCALES Automation/Modules/Hello/Modules/Output/Modules/Random/Locales -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_DIR_CONFIGS Automation/Modules/Hello/Modules/Output/Modules/Random/Configs -Thu 10 Oct 2013 11:50:04 PM CDT TCAR_MODULE_INIT_FILE Automation/Modules/Hello/Modules/Output/Modules/Random/random.sh -Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAIN random.sh -Thu 10 Oct 2013 11:50:04 PM CDT TEXTDOMAINDIR Automation/Modules/Hello/Modules/Output/Modules/Random/Locales -Thu 10 Oct 2013 11:50:04 PM CDT export -f random -Thu 10 Oct 2013 11:50:04 PM CDT -------------------------> random -H -Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random -H -Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random -l -Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random -l -Thu 10 Oct 2013 11:50:04 PM CDT ~~~~~~~~~~~~~~~~~~~~~~~~~> random -H -Thu 10 Oct 2013 11:50:04 PM CDT <------------------------- random -Thu 10 Oct 2013 11:50:04 PM CDT unset -f random -Thu 10 Oct 2013 11:50:04 PM CDT <========================= [2] | output -Thu 10 Oct 2013 11:50:04 PM CDT <------------------------- output -Thu 10 Oct 2013 11:50:05 PM CDT unset -f output -Thu 10 Oct 2013 11:50:05 PM CDT <========================= [1] | hello -Thu 10 Oct 2013 11:50:05 PM CDT <------------------------- hello -Thu 10 Oct 2013 11:50:05 PM CDT unset -f hello -Thu 10 Oct 2013 11:50:05 PM CDT unset -f hello_getOptions -Thu 10 Oct 2013 11:50:05 PM CDT <========================= [0] | main ----------------------------------------------------------------------- -====================================================================== - -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. - -Summary -~~~~~~~ - -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. - -[[module-structure]] -Module Structure ----------------- - -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 <>. - -[IMPORTANT] -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 https://centos.org.cu/bugs/view.php?id=114[Bug 114]. - -[[module-directory-layout]] -.The directory structure of hello module -====================================================================== ----------------------------------------------------------------------- -. -|-- COPYING -|-- Locales/ -|-- Manuals/ -|-- Modules/ -| `-- Hello/ <1> -| |-- Locales -| | |-- es_ES -| | | |-- LC_MESSAGES -| | | | `-- hello.sh.mo <2> -| | | `-- hello.sh.po -| | `-- hello.sh.pot -| |-- Manuals -| | |-- hello.asciidoc -| | |-- man1 -| | | `-- hello.1 <3> -| | `-- render.conf <4> -| |-- Modules -| | `-- Output <5> -| | |-- Modules -| | | |-- Camel -| | | | `-- camel.sh -| | | |-- Lower <6> -| | | | `-- lower.sh <7> -| | | |-- Random -| | | | `-- random.sh -| | | `-- Upper -| | | `-- upper.sh -| | `-- output.sh <8> -| |-- hello.sh <9> -| `-- hello_getOptions.sh <10> -|-- Scripts/ -|-- centos-art.conf.sh -`-- centos-art.sh ----------------------------------------------------------------------- - -<1> Child module of *centos-art.sh* script and parent module of -*output* module. -<2> Spanish translated strings of *hello* module. -<3> Manpage shown when you request help of *hello* module. -<4> Configuration file used to produce the manpage of *hello* module. -<5> Child module of *hello* module and parent module of *camel,* -*lower,* *random* and *upper* modules. -<6> Child module of *output* module and sibling module of *camel,* -*random* and *upper* module. -<7> Initialization file of *lower* module. -<8> Initialization file of *output* module. -<9> Initialization file of *hello* module. -<10> Function file related to *hello* module. -====================================================================== - -<> 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). - -The Function Files -~~~~~~~~~~~~~~~~~~ - -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 <>. - -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. - -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. - -See also: <> and <>. - -[[module-directory-modules]] -The +Modules+ Directory -~~~~~~~~~~~~~~~~~~~~~~~ - -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. - -[[module-directory-locales]] -The +Locales+ Directory -~~~~~~~~~~~~~~~~~~~~~~~ - -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. - -[[module-directory-manuals]] -The +Manuals+ Directory -~~~~~~~~~~~~~~~~~~~~~~~ - -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. - -[[module-directory-configs]] -The +Configs+ Directory -~~~~~~~~~~~~~~~~~~~~~~~ - -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. - -Summary -~~~~~~~ - -This section has covered the directories and files a module is made of -inside the *centos-art.sh* script. - -// vim: set syntax=asciidoc: diff --git a/tcar-scripts/Locales/es_ES/tcar.sh.po b/tcar-scripts/Locales/es_ES/tcar.sh.po deleted file mode 100644 index 3465a74..0000000 --- a/tcar-scripts/Locales/es_ES/tcar.sh.po +++ /dev/null @@ -1,202 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: tcar.sh 0.6\n" -"Report-Msgid-Bugs-To: centos-l10n-es@centos.org.cu\n" -"POT-Creation-Date: 2013-10-07 14:11-0400\n" -"PO-Revision-Date: 2013-10-07 14:11-0400\n" -"Last-Translator: Localization SIG \n" -"Language-Team: Spanish\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" - -#: Automation/tcar.sh:65 -msgid "has not execution rights." -msgstr "no tiene permiso de ejecución." - -#: Automation/Scripts/tcar_checkFiles.sh:56 -msgid "isn't a directory." -msgstr "no es un directorio." - -#: Automation/Scripts/tcar_checkFiles.sh:62 -msgid "doesn't exist." -msgstr "no existe." - -#: Automation/Scripts/tcar_checkFiles.sh:68 -msgid "isn't a regular file." -msgstr "no es un fichero regular." - -#: Automation/Scripts/tcar_checkFiles.sh:74 -msgid "isn't a symbolic link." -msgstr "no es un enlace simbólico." - -#: Automation/Scripts/tcar_checkFiles.sh:80 -msgid "isn't an executable file." -msgstr "no es un fichero ejecutable." - -#: Automation/Scripts/tcar_checkFiles.sh:87 -#, sh-format -msgid "isn't a \"$MIME\" file." -msgstr "no es un fichero \"$MIME\"." - -#: Automation/Scripts/tcar_checkFiles.sh:93 -msgid "doesn't match its pattern." -msgstr "no coincide con su patrón." - -#: Automation/Scripts/tcar_checkFiles.sh:99 -msgid "isn't installed in the system." -msgstr "no está instalado en el sistema." - -#: Automation/Scripts/tcar_checkFiles.sh:119 -msgid "No file for processing found." -msgstr "Ningún fichero encontrado para procesar." - -#: Automation/Scripts/tcar_checkFiles.sh:146 -msgid "The condition command provided isn't supported." -msgstr "El comando condición suministrado no está soportado." - -#: Automation/Scripts/tcar_getTemporalFile.sh:46 -msgid "The first argument cannot be empty." -msgstr "El primer argumento no puede estar vacío." - -#: Automation/Scripts/tcar_printCopyrightInfo.sh:52 -msgid "Creative Common Attribution-ShareAlike 3.0 License" -msgstr "Licencia Creativa Común de Atribución-Compartida 3.0." - -#: Automation/Scripts/tcar_printCopyrightInfo.sh:125 -msgid "All rights reserved." -msgstr "Todos los derechos reservados." - -#: Automation/Scripts/tcar_printMessage.sh:40 -msgid "The message cannot be empty." -msgstr "El mensaje no puede estar vacío." - -#: Automation/Scripts/tcar_printMessage.sh:126 -msgid "To know more, run" -msgstr "Para conocer más, ejecuta" - -#: Automation/Scripts/tcar_printMessage.sh:132 -msgid "yes" -msgstr "sí" - -#: Automation/Scripts/tcar_printMessage.sh:135 -msgid "no" -msgstr "no" - -#: Automation/Scripts/tcar_printMessage.sh:222 -msgid "Processing" -msgstr "Procesando" - -#: Automation/Scripts/tcar_printMessage.sh:226 -msgid "Cropping from" -msgstr "Recortando desde" - -#: Automation/Scripts/tcar_printMessage.sh:230 -msgid "Tuning-up" -msgstr "Ajustando" - -#: Automation/Scripts/tcar_printMessage.sh:234 -msgid "Checking" -msgstr "Comprobando" - -#: Automation/Scripts/tcar_printMessage.sh:238 -msgid "Combining" -msgstr "Combinando" - -#: Automation/Scripts/tcar_printMessage.sh:242 -msgid "Editing" -msgstr "Editando" - -#: Automation/Scripts/tcar_printMessage.sh:247 -msgid "Updating" -msgstr "Actualizando" - -#: Automation/Scripts/tcar_printMessage.sh:249 -msgid "Creating" -msgstr "Creando" - -#: Automation/Scripts/tcar_printMessage.sh:254 -msgid "Deleting" -msgstr "Borrando" - -#: Automation/Scripts/tcar_printMessage.sh:258 -msgid "Reading" -msgstr "Leyendo" - -#: Automation/Scripts/tcar_printMessage.sh:262 -msgid "Saved as" -msgstr "Salvado como" - -#: Automation/Scripts/tcar_printMessage.sh:266 -msgid "Linked to" -msgstr "Enlazado como" - -#: Automation/Scripts/tcar_printMessage.sh:270 -msgid "Moved to" -msgstr "Movido a" - -#: Automation/Scripts/tcar_printMessage.sh:274 -msgid "Translation" -msgstr "Traducción" - -#: Automation/Scripts/tcar_printMessage.sh:278 -msgid "Translating" -msgstr "Traduciendo" - -#: Automation/Scripts/tcar_printMessage.sh:282 -msgid "Validating" -msgstr "Validando" - -#: Automation/Scripts/tcar_printMessage.sh:286 -msgid "Template" -msgstr "Plantilla" - -#: Automation/Scripts/tcar_printMessage.sh:290 -msgid "Configuration" -msgstr "Configuración" - -#: Automation/Scripts/tcar_printMessage.sh:294 -msgid "Palette" -msgstr "Paleta" - -#: Automation/Scripts/tcar_printVersion.sh:45 -#, sh-format -msgid "" -"$PROGRAM_NAME comes with NO WARRANTY, to the extent permitted by law. You " -"may redistribute copies of $PROGRAM_NAME under the terms of the GNU General " -"Public License. For more information about these matters, see the files " -"named COPYING." -msgstr "" -"$PROGRAM_NAME viene SIN GARANTÍAS, a todo el alcance permitido por la ley. " -"Usted puede distribuir copias de $PROGRAM_NAME bajo los términos de la " -"Licencia Pública General de GNU. Para más información sobre estos asuntos, " -"vea el fichero COPYING." - -#: Automation/Scripts/tcar_setModuleArguments.sh:95 -msgid "The argument verification failed." -msgstr "La verificación de argumento falló." - -#: Automation/Scripts/tcar_setModuleEnvironmentScripts.sh:53 -msgid "No function file was found." -msgstr "Ningún fichero de función fue encontrado." - -#: Automation/Scripts/tcar_setModuleEnvironment.sh:56 -msgid "Unknown" -msgstr "Desconocido" - -#: Automation/Scripts/tcar_setModuleEnvironment.sh:145 -msgid "Opening module" -msgstr "Abriendo módulo" - -#: Automation/Scripts/tcar_setModuleEnvironment.sh:149 -msgid "Closing module" -msgstr "Cerrando módulo" - -#: Automation/Scripts/tcar_setModuleEnvironment.sh:159 -msgid "Closing variables" -msgstr "Cerrando variables" - -#: Automation/Scripts/tcar_unsetModuleEnvironment.sh:37 -msgid "The export id was not provided." -msgstr "El identificador de exportación no fue suministrado." diff --git a/tcar-scripts/tcar.sh b/tcar-scripts/tcar.sh deleted file mode 100755 index 217fd19..0000000 --- a/tcar-scripts/tcar.sh +++ /dev/null @@ -1,264 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar.sh -- The CentOS Artwork Repository automation tool. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -###################################################################### -# Identity -###################################################################### - -declare -xr TCAR_SCRIPT_PACKAGE="tcar" -declare -xr TCAR_SCRIPT_VERSION="$(rpm -q --qf "%{VERSION}" ${TCAR_SCRIPT_PACKAGE})" - -###################################################################### -# Paths -###################################################################### - -# Base directory where repository files are installed in. -declare -xr TCAR_BASEDIR=/usr/share/tcar - -# Base directory where final content is produced in. This value is -# also known as the "workplace" and should be customized later by the -# user, using the prepare module of tcar script. -declare -x TCAR_WORKDIR=/tmp - -# Base directory where automation scripts are installed in. -declare -xr TCAR_SCRIPT_BASEDIR=${TCAR_BASEDIR}/Scripts - -# Directory to store temporal files. -declare -xr TCAR_SCRIPT_TEMPDIR=$(mktemp -p /tmp -d ${TCAR_SCRIPT_PACKAGE}-XXXXXX) - -# Configuration files in order of reading preference. The last file in -# the list overlaps options set in previous files in the list. Use -# colon character to separate files in the list. -declare -xr TCAR_SCRIPT_CONFIG=${HOME}/.tcar.conf - -# Base directory where man pages are searched at. -declare -xr TCAR_SCRIPT_MANUALS=/usr/share/man - -# Base directory where automation script modules are installed in. -declare -xr TCAR_SCRIPT_MODULES_BASEDIR=${TCAR_SCRIPT_BASEDIR}/Modules - -# Default text editor. -declare -x TCAR_SCRIPT_EDITOR=/usr/bin/vim - -###################################################################### -# Internationalization -###################################################################### - -# Set the script language information using the LC format. This format -# shows both language and country information (e.g., `es_ES'). -declare -xr TCAR_SCRIPT_LANG_LC=$(echo ${LANG} | cut -d'.' -f1) - -# Set the script language information using the LL format. This format -# shows only the language information (e.g., `es'). -declare -xr TCAR_SCRIPT_LANG_LL=$(echo ${TCAR_SCRIPT_LANG_LC} | cut -d'_' -f1) - -# Set the script language information using the CC format. This format -# shows only the country information (e.g., `ES'). -declare -xr TCAR_SCRIPT_LANG_CC=$(echo ${TCAR_SCRIPT_LANG_LC} | cut -d'_' -f2) - -# Set function environments required by GNU gettext system. -. gettext.sh - -# Set the script text domain. This information is used by gettext -# system to retrieve translated strings from machine object (MO) files -# with this name. This variable is reset each time a new module is -# loaded, so the correct files can be used. -declare -x TEXTDOMAIN="${TCAR_SCRIPT_PACKAGE}" - -# Set the script text domain directory. This information is used by -# gettext system to know where the machine objects are stored in. This -# variable is reset each time a new module is loaded, so the correct -# files can be used. -declare -xr TEXTDOMAINDIR=/usr/share/locale - -###################################################################### -# Global Flags -###################################################################### - -# Set filter flag (-f|--filter). This flag is mainly used to reduce -# the number of files to process and is interpreted as egrep-posix -# regular expression. By default, when this flag is not provided, all -# paths in the working copy will match, except files inside hidden -# directories like `.svn' and `.git' that will be omitted. -declare -x TCAR_FLAG_FILTER='[[:alnum:]_/-]+' - -# Set verbosity flag (-q|--quiet). This flag controls whether -# tcar.sh script prints messages or not. By default, all -# messages are suppressed except those directed to standard error. -declare -x TCAR_FLAG_QUIET='false' - -# Set affirmative flag (-y|--yes). This flag controls whether -# tcar.sh script does or does not pass confirmation request -# points. By default, it doesn't. -declare -x TCAR_FLAG_YES='false' - -# Set debugger flag (-d|--debug). This flag controls whether -# tcar.sh script does or does not print debugging information. -# The tcar.sh script prints debug information to standard -# output. -declare -x TCAR_FLAG_DEBUG='false' - -###################################################################### -# Global Functions -###################################################################### - -# Export script's environment functions. -for SCRIPT_FILE in $(ls ${TCAR_SCRIPT_BASEDIR}/tcar_*.sh);do - if [[ -x ${SCRIPT_FILE} ]];then - . ${SCRIPT_FILE} - export -f $(grep '^function ' ${SCRIPT_FILE} | cut -d' ' -f2) - else - echo "${SCRIPT_FILE} `gettext "has not execution rights."`" - exit 1 - fi -done - -###################################################################### -# Signals -###################################################################### - -# Trap signals in order to terminate the script execution correctly -# (e.g., removing all temporal files before leaving). Trapping the -# exit signal seems to be enough by now, since it is always present as -# part of the script execution flow. Each time the tcar.sh -# script is executed it will inevitably end with an EXIT signal at -# some point of its execution, even if it is interrupted in the middle -# of its execution (e.g., through `Ctrl+C'). -trap tcar_terminateScriptExecution 0 - -###################################################################### -# Parse Command-line Arguments -###################################################################### - -declare -x TCAR_MODULE_NAME='' -declare -x TCAR_MODULE_ARGUMENT='' -declare -x TCAR_SCRIPT_ARGUMENT='' - -# Retrieve module's name using the first argument of tcar.sh -# script as reference. -if [[ ! ${1} =~ '^-' ]];then - TCAR_MODULE_NAME="${1}"; shift 1 -else - TCAR_MODULE_NAME="" -fi - -# Initialize tcar.sh script specific options. The way tcar.sh script -# retrieves its options isn't as sophisticated (e.g., it doesn't -# provide valid-option verifications) as it is provided by getopt -# command. I cannot use getopt here because it is already used when -# loading module-specific options. Using more than one invocation of -# getopt in the same script is not possible (e.g., one of the -# invocations may enter in conflict with the other one when different -# option definitions are expected in the command-line.) -while true; do - - # Store non-option arguments passed to tcar.sh script. - if [[ ! ${1} =~ '^-' ]];then - TCAR_SCRIPT_ARGUMENT="${1} ${TCAR_SCRIPT_ARGUMENT}" - shift 1 - if [[ $# -gt 0 ]];then - continue - else - break - fi - fi - - case "${1}" in - - --help* ) - - if [[ -z ${TCAR_MODULE_NAME} ]];then - # Print tcar.sh script's help. Consider that the - # --help option can receive an argument by using the - # equal sign (e.g., - # --help=tcar_setModuleEnvironment.sh). However, it - # is not possible to use spaces instead of equal sign - # because that would confuse other options from being - # parsed. - tcar_printHelp "${1}" - exit 0 - else - # Store the argument for further processing inside the - # module environment that will be executed later. - TCAR_MODULE_ARGUMENT="-g ${1} ${TCAR_MODULE_ARGUMENT}" - shift 1 - fi - ;; - - --version ) - - # Print tcar.sh script's version. - if [[ -z ${TCAR_MODULE_NAME} ]];then - tcar_printVersion - exit 0 - else - TCAR_MODULE_ARGUMENT="-g ${1} ${TCAR_MODULE_ARGUMENT}" - shift 1 - fi - ;; - - --quiet ) - - TCAR_FLAG_QUIET='true' - shift 1 - ;; - - --yes ) - - TCAR_FLAG_YES='true' - shift 1 - ;; - - --debug ) - - TCAR_FLAG_DEBUG='true' - shift 1 - ;; - - * ) - - # Store module-specific option arguments. This is, all - # arguments not considered part of tcar.sh script - # itself. The module-specific option arguments are passed, - # later, to getopt for option processing, inside the - # module-specific environments. - TCAR_MODULE_ARGUMENT="-g ${1} ${TCAR_MODULE_ARGUMENT}" - shift 1 - if [[ $# -gt 0 ]];then - continue - else - break - fi - ;; - esac -done - -# Initiate module-specific environment. -tcar_setModuleEnvironment -m "${TCAR_MODULE_NAME}" ${TCAR_MODULE_ARGUMENT} ${TCAR_SCRIPT_ARGUMENT} - -# At this point everything has been done without errors. So, exit -# tcar.sh script successfully. -exit 0 diff --git a/tcar-scripts/tcar_checkFiles.sh b/tcar-scripts/tcar_checkFiles.sh deleted file mode 100755 index 5a16a64..0000000 --- a/tcar-scripts/tcar_checkFiles.sh +++ /dev/null @@ -1,157 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_checkFiles.sh -- This function standardizes the way file -# conditional expressions are applied to files. Here is where -# tcar.sh script answers questions like: is the file a regular -# file or a directory? Or, is it a symbolic link? Or even, does it -# have execution rights, etc. If the verification fails somehow at -# any point, an error message is output and tcar.sh script -# finishes its execution. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_checkFiles { - - # Reset text domain locally, in order to prevent this function - # from using the last text domain definition. By default all - # common functions do use the same MO file. - local TEXTDOMAIN="${TCAR_SCRIPT_PACKAGE}" - - # Initialize local array variables. - local -a CONDITION_COMMAND - local -a CONDITION_PATTERN - local -a CONDITION_MESSAGE - - # Initialize local counter. - local COUNTER=0 - - OPTIND=1 - while getopts "i:,r,m:,n,d,e,f,h,x" OPTION "${@}"; do - - case "${OPTION}" in - - d ) - CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/test' - CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-d' - CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "isn't a directory."`" - ;; - - e ) - CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/test' - CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-e' - CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "doesn't exist."`" - ;; - - f ) - CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/test' - CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-f' - CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "isn't a regular file."`" - ;; - - h ) - CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/test' - CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-h' - CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "isn't a symbolic link."`" - ;; - - x ) - CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/test' - CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-x' - CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "isn't an executable file."`" - ;; - - i ) - local MIME=${OPTARG} - CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='/usr/bin/file' - CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]='-bi' - CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`eval_gettext "isn't a \\\"\\\$MIME\\\" file."`" - ;; - - m ) - CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]='match' - CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]="${OPTARG}" - CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "doesn't match its pattern."`" - ;; - - n ) - CONDITION_COMMAND[((++${#CONDITION_COMMAND[*]}))]="/bin/rpm" - CONDITION_PATTERN[((++${#CONDITION_PATTERN[*]}))]="-q --quiet" - CONDITION_MESSAGE[((++${#CONDITION_MESSAGE[*]}))]="`gettext "isn't installed in the system."`" - ;; - - esac - done - - # Clean up positional parameters to reflect the fact that options - # have been processed already. - shift $(( ${OPTIND} - 1 )) - - # Define list of files we want to apply verifications to, now that - # all option-like arguments have been removed from positional - # parameters list so we are free to go with the verifications. - local FILE='' - local FILES=${@} - - # Verify existence of files to prevent tcar.sh script from - # using the current location in cases when it shouldn't (e.g., - # here it is expecting a list of files to process.). - if [[ -z ${FILES} ]];then - tcar_printMessage "`gettext "No file for processing found."`" --as-error-line - fi - - for FILE in ${FILES};do - - until [[ ${COUNTER} -eq ${#CONDITION_PATTERN[*]} ]];do - - case ${CONDITION_COMMAND[${COUNTER}]} in - - "/usr/bin/test" | "/bin/rpm" ) - ${CONDITION_COMMAND[${COUNTER}]} ${CONDITION_PATTERN[${COUNTER}]} ${FILE} \ - || tcar_printMessage "${FILE} ${CONDITION_MESSAGE[${COUNTER}]}" --as-error-line - ;; - - "/usr/bin/file" ) - if [[ ! $(${CONDITION_COMMAND[${COUNTER}]} ${CONDITION_PATTERN[${COUNTER}]} ${FILE}) =~ "^${MIME}" ]];then - tcar_printMessage "${FILE} ${CONDITION_MESSAGE[${COUNTER}]}" --as-error-line - fi - ;; - - "match" ) - if [[ ! ${FILE} =~ "${CONDITION_PATTERN[${COUNTER}]}" ]];then - tcar_printMessage "${FILE} ${CONDITION_MESSAGE[${COUNTER}]}" --as-error-line - fi - ;; - - * ) - tcar_printMessage "`gettext "The condition command provided isn't supported."`" --as-error-line - ;; - - esac - - COUNTER=$((${COUNTER} + 1)) - - done - - done - -} diff --git a/tcar-scripts/tcar_checkModuleName.sh b/tcar-scripts/tcar_checkModuleName.sh deleted file mode 100755 index 1b73e2f..0000000 --- a/tcar-scripts/tcar_checkModuleName.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_checkModuleName.sh -- This function uses the module's based -# directory to verify whether child and sibling modules do exist or -# not. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_checkModuleName { - - local TCAR_MODULE_LIST=$(ls ${TCAR_MODULE_BASEDIR} | tr '\n' '|' \ - | sed -r 's/\|$//' | tr '[[:upper:]]' '[[:lower:]]') - - tcar_printMessage "TCAR_MODULE_LIST : ${TCAR_MODULE_LIST}" --as-debugger-line - - tcar_checkFiles -m "^(${TCAR_MODULE_LIST})$" "${TCAR_MODULE_NAME}" - -} diff --git a/tcar-scripts/tcar_checkRepoDirSource.sh b/tcar-scripts/tcar_checkRepoDirSource.sh deleted file mode 100755 index c04379d..0000000 --- a/tcar-scripts/tcar_checkRepoDirSource.sh +++ /dev/null @@ -1,95 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_checkRepoDirSource.sh -- This function standardizes the path -# construction of directories inside the working copy, using -# absolute paths. This function transforms relative paths passed as -# non-option arguments to tcar.sh script command-line into -# absolute paths inside the working copy, based on whether you are -# using Subversion or Git as version control system. Further -# verifications, (e.g., whether they really exist as directories -# inside the working copy or not) should be realized outside this -# function. -# -# Use this function whenever you want to be sure non-option -# arguments passed to tcar.sh script command-line do always -# point to directories inside the working copy. Transforming -# relative paths into absolute paths, before processing them, is -# very useful when you need to execute the tcar.sh script as -# command (e.g., `tcar') anywhere on your workstation. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_checkRepoDirSource { - - local LOCATION=${1} - - # Remove any dot from arguments passed to tcar.sh script. - # This way it is possible to use a single dot to reflect the - # current location from which tcar.sh was executed. Notice - # that using a dot as argument is optional (e.g.: when you pass no - # argument to tcar command-line, the current location is - # used as default location). However, it might be useful to use a - # dot as argument when you want to include the current location in - # a list of arguments to process. Don't forget that dot slash can - # be used to refer locations relatively. - LOCATION=$(echo "${LOCATION}" | sed -r "s,^\.(/([[:alnum:]_/.-]+)?)?$,$(pwd)\1,g") - - # Remove the path to repository's base directory from location in - # order to avoid path duplications here. - LOCATION=$(echo "${LOCATION}" | sed "s,${TCAR_BASEDIR}/,,g") - - # When we use Git as version control system, there isn't a need of - # using the `trunk', `branches', `tags' convention we were using - # for Subversion. The working copy begins directly with the - # content of our repository (e.g., Documentation, Scripts, - # Identity and Locales). - # - # When we use Subversion as version control system, we follow the - # `trunk', `branches', `tags' convention to organize files inside - # the repository and need to redefine the source path in order to - # build the repository absolute path from the repository top level - # on. As convention, when you prepare your working copy through - # tcar.sh script, the absolute path to the `trunk/' - # directory is used as working copy. This is, path arguments - # provided to tcar.sh script will be interpreted from trunk/ - # directory level on. For example, the following command should - # work correctly in both Subversion and Git repositories: - # - # tcar render Documentation/Manuals/Docbook/Tcar-ug - # - # There isn't a need of verifying the paths built here. This is - # something we do later, using the tcar_checkFiles function. We - # don't do the file verification here to avoid malformed error - # messages when we reassign variable values using this function as - # reference (e.g., in order to prevent error messages from being - # stored inside variables.). - LOCATION=${TCAR_BASEDIR}/${LOCATION} - - # Remove trailing slashes passed as argument. The single slash - # form is used to refer the repository's root directory. The - # single slash form passed as argument of tcar.sh script is - # useful to execute commands over the - # entire repository tree. - echo "${LOCATION}" | sed -r -e 's,/+,/,g' -e 's,/+$,,g' - -} diff --git a/tcar-scripts/tcar_checkWorkDirSource.sh b/tcar-scripts/tcar_checkWorkDirSource.sh deleted file mode 100755 index 19a88a7..0000000 --- a/tcar-scripts/tcar_checkWorkDirSource.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_checkWorkDirSource.sh -- This function prepares non-option -# arguments passed through the command-line for further processing. -# When the argument provided is not an absolute path this function -# transforms it into an absolute path using the current working -# directory. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_checkWorkDirSource { - - local LOCATION=${1} - - # Append the current working directory when the location provided - # isn't absolute. - if [[ ! ${LOCATION} =~ '^/' ]];then - LOCATION=${PWD}/${LOCATION} - fi - - # Remove both consecutive slashes and trailing slashes from final - # location. - echo "${LOCATION}" | sed -r -e 's,/+,/,g' -e 's,/+$,,g' - - # The single slash form doesn't point to repository's root - # directory anymore. Instead, when a single slash is passed - # as argument through the command-line, it preserves its regular - # meaning which is pointing the workstation's file system. - - # The path verification isn't appropriate here because this - # function is commonly used inside variable assignments and flow - # control doesn't take place in such situation. In case path - # verification fails here, the script wouldn't end its execution - # which contradicts the expected behaviour. - -} diff --git a/tcar-scripts/tcar_getConfigLines.sh b/tcar-scripts/tcar_getConfigLines.sh deleted file mode 100755 index 6c52553..0000000 --- a/tcar-scripts/tcar_getConfigLines.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_getConfigLines.sh -- This function standardizes the way -# configuration lines are retrieved form configuration files. As -# arguments, the configuration file absolute path, the configuration -# section name, and the configuration option name must be provided. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_getConfigLines { - - # Initialize absolute path to configuration file. - local CONFIGURATION_FILE="${1}" - - # Initialize configuration section name where the variable value - # we want to to retrieve is set in. - local CONFIGURATION_SECTION="${2}" - - # Initialize variable name we want to retrieve value from. - local CONFIGURATION_OPTION="${3}" - - # Verify configuration variable name. When no variable name is - # provided print all configuration lines that can be considered as - # well-formed paths. Be sure configuration variable name starts - # just at the beginning of the line. - if [[ ! ${CONFIGURATION_OPTION} =~ '^[[:alnum:]_./-]+$' ]];then - CONFIGURATION_OPTION='[[:alnum:]_./-]+[[:space:]]*=' - fi - - # Retrieve configuration lines from configuration file. Don't sort - # the value of this value so as to preserve the order given in the - # configuration file. This is important because configuration - # files are being used for setting render-from priorities. - local CONFIGURATION_LINES=$(cat ${CONFIGURATION_FILE} \ - | egrep -v '^#' \ - | egrep -v '^[[:space:]]*$' \ - | sed -r -n "/^\[${CONFIGURATION_SECTION}\][[:space:]]*$/,/^\[/p" \ - | egrep -v '^\[' \ - | egrep "^${CONFIGURATION_OPTION}") - - # Output value related to variable name. - echo "${CONFIGURATION_LINES}" - -} diff --git a/tcar-scripts/tcar_getConfigSectionNames.sh b/tcar-scripts/tcar_getConfigSectionNames.sh deleted file mode 100755 index 8da1206..0000000 --- a/tcar-scripts/tcar_getConfigSectionNames.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_getConfigSectionNames.sh -- This function standardizes the way -# section names are retrieved from configuration files. Once section -# names are retrieved they are printed to standard output for -# further processing. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_getConfigSectionNames { - - # Define absolute path to configuration file we want to retrieve - # section names from. - local CONFIGURATION_FILE=${1} - - # Verify existence of configuration file. - tcar_checkFiles -ef ${CONFIGURATION_FILE} - - # Define regular expression pattern used to retrieve section names - # from configuration files. Don't permit any regular expression - # meta-character either. - local CONFIGURATION_SECTION_REGEX='^\[[[:alnum:]_.-]+\][[:space:]]*$' - - # Output all section names without brackets, one per line. Don't - # permit any kind of expansion here. Section names are used as - # reference to retrieve information from configuration file, - # expanding them would create different points of verifications. - egrep ${CONFIGURATION_SECTION_REGEX} ${CONFIGURATION_FILE} \ - | sed -r 's,\[(.+)\],\1,' - -} diff --git a/tcar-scripts/tcar_getConfigValue.sh b/tcar-scripts/tcar_getConfigValue.sh deleted file mode 100755 index 9b2f32f..0000000 --- a/tcar-scripts/tcar_getConfigValue.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_getConfigValue.sh -- This function standardizes the way -# configuration values are retrieved from configuration files. As -# arguments, the configuration file absolute path, the configuration -# section name, and the configuration option name must be provided. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_getConfigValue { - - local CONFIGURATION_FILE="${1}" - - local CONFIGURATION_SECTION="${2}" - - local CONFIGURATION_OPTION="${3}" - - local CONFIGURATION_LINES=$(tcar_getConfigLines \ - "${CONFIGURATION_FILE}" "${CONFIGURATION_SECTION}" "${CONFIGURATION_OPTION}") - - for CONFIGURATION_LINE in "${CONFIGURATION_LINES}";do - - local CONFIGURATION_VALUE=$(echo "${CONFIGURATION_LINE}" \ - | cut -d= -f2- | sed -r -e 's/"//g' -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//') - - eval echo ${CONFIGURATION_VALUE} - - done - - -} diff --git a/tcar-scripts/tcar_getFileExtension.sh b/tcar-scripts/tcar_getFileExtension.sh deleted file mode 100755 index b00cb26..0000000 --- a/tcar-scripts/tcar_getFileExtension.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_getFileExtension.sh -- This function retrieves the extension -# of a file. -# -# Written by: -# * Alain Reguera Delgado , 2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_getFileExtension { - - basename ${1} | sed -r 's/.+\.([[:alnum:]]+)$/\1/' - -} diff --git a/tcar-scripts/tcar_getFileName.sh b/tcar-scripts/tcar_getFileName.sh deleted file mode 100755 index 99bfb76..0000000 --- a/tcar-scripts/tcar_getFileName.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_getFileName.sh -- This function retrieves the name of a file. -# -# Written by: -# * Alain Reguera Delgado , 2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_getFileName { - - basename ${1} | sed -r 's/\.([[:alnum:]]+)$//' - -} diff --git a/tcar-scripts/tcar_getFilesList.sh b/tcar-scripts/tcar_getFilesList.sh deleted file mode 100755 index 1a1fad9..0000000 --- a/tcar-scripts/tcar_getFilesList.sh +++ /dev/null @@ -1,98 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_getFilesList.sh -- This function standardizes the way list of -# files are built inside tcar.sh script. This function outputs -# a sorted and unique list of files based on the options and -# locations passed as argument. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_getFilesList { - - # Initialize pattern used to reduce the find output. - local PATTERN="${TCAR_FLAG_FILTER}" - - # Initialize options used with find command. - local OPTIONS='' - - OPTIND=1 - while getopts "p:,a:,i:,t:,u:" OPTION "${@}"; do - - case "${OPTION}" in - p ) - PATTERN="${OPTARG}" - ;; - a ) - OPTIONS="${OPTIONS} -maxdepth ${OPTARG}" - ;; - i ) - OPTIONS="${OPTIONS} -mindepth ${OPTARG}" - ;; - t ) - OPTIONS="${OPTIONS} -type ${OPTARG}" - ;; - u ) - OPTIONS="${OPTIONS} -uid ${OPTARG}" - ;; - esac - - done - - # Clean up positional parameters to reflect the fact that options - # have been processed already. - shift $(( ${OPTIND} - 1 )) - - # At this point all options arguments have been processed and - # removed from positional parameters. Only non-option arguments - # remain so we use them as source location for find command to - # look files for. - - # Verify that locations does exist. - tcar_checkFiles -e ${@} - - # Redefine pattern as regular expression. When we use regular - # expressions with find, regular expressions are evaluated against - # the whole file path. This way, when the regular expression is - # specified, we need to build it in a way that matches the whole - # path we are using. Doing so, every time we pass the `--filter' - # option in the command-line could be a tedious task. Instead, in - # the sake of reducing some typing, we prepare the regular - # expression here to match the whole path using the regular - # expression provided by the user as pattern. Do not use locations - # as part of regular expression so it could be possible to use - # path expansion. Using path expansion reduce the amount of - # places to find out things and so the time required to finish the - # task. - # - # Don't do such path expansion here. Instead, do it when you call - # this function. Otherwise you would be prohibiting the - # application of exact patterns. - #PATTERN="^/.*${PATTERN}$" - - # Define list of files to process. At this point we cannot verify - # whether the location is a directory or a file since path - # expansion could be introduced to it. The best we can do is - # verifying exit status and go on. - find ${@} -regextype posix-egrep ${OPTIONS} -regex "${PATTERN}" | sort | uniq - -} diff --git a/tcar-scripts/tcar_getPathComponent.sh b/tcar-scripts/tcar_getPathComponent.sh deleted file mode 100755 index a87dbf8..0000000 --- a/tcar-scripts/tcar_getPathComponent.sh +++ /dev/null @@ -1,126 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_getPathComponent.sh -- This function standardizes the way -# directory structures are organized inside the working copy of -# CentOS Artwork Repository. You can use this function to retrieve -# information from paths (e.g., releases, architectures and theme -# artistic motifs) or the patterns used to build the paths. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_getPathComponent { - - # Define release pattern. - local VERSION="(([[:digit:]]+)(\.([[:digit:]]+))?)" - - # Define architecture pattern. Make it match the architectures the - # CentOS distribution is able to be installed on. - local ARCHITECTURE="(i386|x86_64)" - - # Define regular expression pattern that match the theme artistic - # motif component inside the path strings. - local THEME_MOTIF="Themes/Motifs/(([[:alnum:]]+)/(${VERSION}))" - - # Define location we want to apply verifications to. - local LOCATION=${1} - - # Remove location from positional parameters, so only the option - # remain. - shift 1 - - # Look for options passed through positional parameters. - while true;do - - case "${1}" in - - --release ) - echo "${LOCATION}" | egrep "${VERSION}" | sed -r "s!.*/${VERSION}/.*!\1!" - shift 1 - break - ;; - - --release-major ) - echo "${LOCATION}" | egrep "${VERSION}" | sed -r "s!.*/${VERSION}/.*!\2!" - shift 1 - break - ;; - - --release-minor ) - echo "${LOCATION}" | egrep "${VERSION}" | sed -r "s!.*/${VERSION}/.*!\4!" - shift 1 - break - ;; - - --release-pattern ) - echo "${VERSION}" - shift 1 - break - ;; - - --architecture ) - echo "${LOCATION}" | egrep "${ARCHITECTURE}" | sed -r "s!${ARCHITECTURE}!\1!" - shift 1 - break - ;; - - --architecture-pattern ) - echo "${ARCHITECTURE}" - shift 1 - break - ;; - - --motif ) - echo "${LOCATION}" | egrep "${THEME_MOTIF}" | sed -r "s!.*${THEME_MOTIF}.*!\1!" - shift 1 - break - ;; - - --motif-name ) - echo "${LOCATION}" | egrep "${THEME_MOTIF}" | sed -r "s!.*${THEME_MOTIF}.*!\2!" - shift 1 - break - ;; - - --motif-version ) - echo "${LOCATION}" | egrep "${THEME_MOTIF}" | sed -r "s!.*${THEME_MOTIF}.*!\3!" - shift 1 - break - ;; - - --motif-pattern ) - echo "${THEME_MOTIF}" - shift 1 - break - ;; - - --repo-dir ) - echo "${LOCATION}" | sed "s,${TCAR_USER_WRKDIR}/,," - shift 1 - break - ;; - - esac - - done - -} diff --git a/tcar-scripts/tcar_getRepoName.sh b/tcar-scripts/tcar_getRepoName.sh deleted file mode 100755 index b572bf0..0000000 --- a/tcar-scripts/tcar_getRepoName.sh +++ /dev/null @@ -1,135 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_getRepoName.sh -- This function standardizes files and -# directories name convection inside the working copy of CentOS -# Artowrk Repository. As convection, regular files are written in -# lower-case and directories are written capitalized. Use this -# function to sanitate the name of regular files and directories on -# paths you work with. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_getRepoName { - - # Define the name we want to apply verifications to. - local NAME="${1}" - - # Avoid using options as it were names. When name value is empty - # but an option is provided, the option becomes the first - # positional argument and is evaluated as it were a name which is - # something we need to prevent from happening. - if [[ ${NAME} =~ '^-' ]];then - return - fi - - # Look for options passed through positional parameters. - case "${2}" in - - -f|--basename ) - - # Reduce the path passed to use just the non-directory - # part of it (i.e., the last component in the path; _not_ - # the last "real" directory in the path). - NAME=$(basename ${NAME}) - - # Clean value. - NAME=$(echo ${NAME} \ - | tr -s ' ' '_' \ - | tr '[:upper:]' '[:lower:]') - ;; - - -d|--dirname ) - - local DIR='' - local DIRS='' - local CLEANDIRS='' - local PREFIXDIR='' - - # In order to sanitate each directory in a path, it is - # required to break off the path string so each component - # can be worked out individually and later combine them - # back to create a clean path string. - - # Reduce path information passed to use the directory part - # of it only. Of course, this is applied if there is a - # directory part in the path. Assuming there is no - # directory part but a non-empty value in the path, use - # that value as directory part and clean it up. - if [[ ${NAME} =~ '.+/.+' ]];then - - # When path information is reduced, we need to - # consider that absolute paths contain some - # directories outside the working copy directory - # structure that shouldn't be sanitized (e.g., /home, - # /home/centos, /home/centos/artwork, - # /home/centos/artwork/turnk, trunk, etc.) So, we keep - # them unchanged for later use. - PREFIXDIR=$(echo ${NAME} \ - | sed -r "s,^((${TCAR_USER_WRKDIR}/)?(trunk|branches|tags)/)?.+$,\1,") - - # ... and remove them from the path information we do - # want to sanitate. - DIRS=$(dirname "${NAME}" \ - | sed -r "s!^${PREFIXDIR}!!" \ - | tr '/' ' ') - - else - - # At this point, there is not directory part in the - # information passed, so use the value passed as - # directory part as such. - DIRS=${NAME} - - fi - - for DIR in ${DIRS};do - - # Sanitate directory component. - if [[ ${DIR} =~ '^[a-z]' ]];then - DIR=$(echo ${DIR} \ - | tr -s ' ' '_' \ - | tr '[:upper:]' '[:lower:]' \ - | sed -r 's/^([[:alpha:]])/\u\1/') - fi - - # Rebuild path using sanitized values. - CLEANDIRS="${CLEANDIRS}/${DIR}" - - done - - # Redefine path using sanitized values. - NAME=$(echo ${CLEANDIRS} | sed -r "s!^/!!") - - # Add prefix directory information to sanitate path - # information. - if [[ "${PREFIXDIR}" != '' ]];then - NAME=${PREFIXDIR}${NAME} - fi - ;; - - esac - - # Print out the clean path string. - echo ${NAME} - -} diff --git a/tcar-scripts/tcar_getTemporalFile.sh b/tcar-scripts/tcar_getTemporalFile.sh deleted file mode 100755 index 7a7e61b..0000000 --- a/tcar-scripts/tcar_getTemporalFile.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_getTemporalFile.sh -- This function returns the absolute path -# you need to use to create temporal files. Use this function -# whenever you need to create temporal files inside tcar.sh -# script. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_getTemporalFile { - - # Reset text domain locally, in order to prevent this function - # from using the last text domain definition. By default all - # common functions do use the same MO file. - local TEXTDOMAIN="${TCAR_SCRIPT_PACKAGE}" - - # Define base name for temporal file. This is required when svg - # instances are created previous to be parsed by inkscape in order - # to be exported as png. In such cases .svg file extension is - # required in order to avoid complains from inkscape. - local FILENAME="${RANDOM}${RANDOM}-$(tcar_getRepoName ${1} -f)" - - # Check default base name for temporal file, it can't be an empty - # value. - if [[ -z "${FILENAME}" ]];then - tcar_printMessage "`gettext "The first argument cannot be empty."`" --as-error-line - fi - - # Define absolute path for temporal file and send it out to - # standard output. - echo "${TCAR_SCRIPT_TEMPDIR}/${FILENAME}" - -} diff --git a/tcar-scripts/tcar_printCaller.sh b/tcar-scripts/tcar_printCaller.sh deleted file mode 100755 index cb537a4..0000000 --- a/tcar-scripts/tcar_printCaller.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_printCaller.sh -- This function standardizes the way caller -# information is retrieved. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_printCaller { - - local EXPR=${1} - local OPTS=${2} - - case ${OPTS} in - - --line ) - caller ${EXPR} | gawk '{ print $1 }' - ;; - - --name ) - caller ${EXPR} | gawk '{ print $2 }' - ;; - - --path ) - caller ${EXPR} | gawk '{ print $3 }' - ;; - - * ) - # Define where the error was originated inside the - # tcar.sh script. Print out the function name and - # line from the caller. - caller ${EXPR} | gawk '{ print $2 " L." $1 }' - ;; - - esac - -} diff --git a/tcar-scripts/tcar_printCopyrightInfo.sh b/tcar-scripts/tcar_printCopyrightInfo.sh deleted file mode 100755 index a5f8d58..0000000 --- a/tcar-scripts/tcar_printCopyrightInfo.sh +++ /dev/null @@ -1,136 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_printCopyrightInfo.sh -- This function standardizes the -# copyright information printed on content produced by tcar.sh -# script. -# -# As far as I understand, the copyright exists to make people create -# more. The copyright gives creators the legal power over their -# creations and so the freedom to distribute them under the ethical -# terms the creator considers better. At this moment I don't feel -# very confident about this legal affairs and their legal -# implications, but I need to decide what copyright information the -# tcar.sh script will print out when someone request -# information about it. So, in that sake, I am using The CentOS -# Artwork SIG as copyright holder and the GNU Public License, -# version 2 or any later, for software distribution. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_printCopyrightInfo { - - # Reset text domain locally, in order to prevent this function - # from using the last text domain definition. By default all - # common functions do use the same MO file. - local TEXTDOMAIN="${TCAR_SCRIPT_PACKAGE}" - - case "${1}" in - - --license ) - - # Print the license name. - echo "`gettext "Creative Common Attribution-ShareAlike 3.0 License"`" - ;; - - --license-url ) - - # Print the url related to license name. - tcar_printUrl --cc-sharealike - ;; - - --first-year ) - - # The former year when I (as collaborator of The CentOS - # Project) started to consolidate The CentOS Project - # Corporate Visual Identity through the CentOS Artwork - # Repository. - echo '2009' - ;; - - --year|--last-year) - - # The software release year. This information should never - # be the current year. Instead, to make this information - # maintainable, relay on tcar package build-time. - rpm -q --qf "%{BUILDTIME:date}" tcar | gawk '{ print $4 }' - ;; - - --years-range ) - - local FIRST_YEAR=$(tcar_printCopyrightInfo --first-year) - local LAST_YEAR=$(tcar_printCopyrightInfo --last-year) - echo "${FIRST_YEAR}-${LAST_YEAR}" - ;; - - --years-list ) - - local FIRST_YEAR=$(tcar_printCopyrightInfo --first-year) - local LAST_YEAR=$(tcar_printCopyrightInfo --last-year) - - # Define full copyright year string based on first and - # last year. - local FULL_YEAR=$(\ - while [[ ${FIRST_YEAR} -le ${LAST_YEAR} ]];do - echo -n "${FIRST_YEAR}, " - FIRST_YEAR=$((${FIRST_YEAR} + 1)) - done) - - # Prepare full copyright year string and print it out. - echo "${FULL_YEAR}" | sed 's!, *$!!' - ;; - - --holder ) - - # Print tcar.sh script default copyright holder. Be - # pragmatic about this information, please. The CentOS - # Project exists to produce The CentOS Distribution, not - # tcar.sh script. Nevertheless, The CentOS Artwork SIG is - # an organizational unit of The CentOS Project which is - # focused on producing The CentOS Project corporate visual - # identity, by means of The CentOS Artwork Repository. - # The tcar.sh script automates frequent tasks inside The - # CentOS Artwork Repository so, based on these - # considerations, the copyright holder of the tcar.sh - # script is "closer" to be The CentOS Artwork SIG than it - # would be The CentOS Project. These are the logical - # choosing ideas behind the copyright holder of tcar.sh - # script. - echo "`gettext "The CentOS Artwork SIG"`" - ;; - - --holder-predicate ) - - local HOLDER=$(tcar_printCopyrightInfo --holder) - echo "${HOLDER}. `gettext "All rights reserved."`" - ;; - - * ) - - local YEAR=$(tcar_printCopyrightInfo --last-year) - local HOLDER=$(tcar_printCopyrightInfo --holder) - echo "Copyright © ${YEAR} ${HOLDER}" - ;; - - esac - -} diff --git a/tcar-scripts/tcar_printFile.sh b/tcar-scripts/tcar_printFile.sh deleted file mode 100755 index 5ef5047..0000000 --- a/tcar-scripts/tcar_printFile.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_printFile.sh -- This function standardizes the way files are -# concatenated inside tcar.sh script. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_printFile { - - # Define absolute path to file you want to print. Take into - # consideration that this file might be out of the repository - # (e.g., it would be a temporal file stored under - # /tmp/tcar-XXXXXX/ directory). - local FILE="${1}" - - tcar_checkFiles -ef ${FILE} - - if [[ $(/usr/bin/file -b -i ${FILE}) =~ '^application/x-gzip$' ]];then - /bin/zcat ${FILE} - elif [[ $(/usr/bin/file -b -i ${FILE}) =~ '^application/x-bzip2$' ]];then - /bin/bzcat ${FILE} - else - /bin/cat ${FILE} - fi - -} diff --git a/tcar-scripts/tcar_printHelp.sh b/tcar-scripts/tcar_printHelp.sh deleted file mode 100755 index b48eef9..0000000 --- a/tcar-scripts/tcar_printHelp.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_printHelp.sh -- This function standardizes the way -# tcar.sh script prints help about itself. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_printHelp { - - # Retrieve the man page name. This is the file name you want to retrieve - # documentation for. This value is optional. When it is not passed, the - # module name is used. - local TCAR_MANPAGE_NAME="${1:-${TCAR_MODULE_NAME}}" - - # When the module name has not been set and the tcar_printHelp - # function is called from tcar.sh file, the page name come - # with with --help as opening string and probably as - # --help=filename.sh. In the first case it prints the script - # documentation. In the second case it prints documentation for - # the file specified. - if [[ -z ${TCAR_MODULE_NAME} ]];then - if [[ ${TCAR_MANPAGE_NAME} =~ '^--help=[[:alnum:]_-.]+' ]];then - TCAR_MANPAGE_NAME=$(echo ${TCAR_MANPAGE_NAME} | cut -d'=' -f2) - else - TCAR_MANPAGE_NAME=${TCAR_SCRIPT_PACKAGE} - fi - fi - - # Print requested documentation. - /usr/bin/man -M ${TCAR_SCRIPT_DIR_MANUALS}:${TCAR_MODULE_DIR_MANUALS}/Final "${TCAR_MANPAGE_NAME}" - - # Finish script execution successfully. - exit 0 - -} diff --git a/tcar-scripts/tcar_printMailingList.sh b/tcar-scripts/tcar_printMailingList.sh deleted file mode 100755 index 662aea7..0000000 --- a/tcar-scripts/tcar_printMailingList.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_printMailingList.sh -- This function standardizes the way -# mailing list addresses are printed on content produced by -# tcar.sh script. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_printMailingList { - - local MAILADDRS='' - - # Define short options. - local ARGSS='' - - # Define long options. - local ARGSL='as-html-link:,docs' - - # Initialize arguments with an empty value and set it as local - # variable to this function scope. Doing this is very important to - # avoid any clash with higher execution environments. - local TCAR_MODULE_ARGUMENT='' - - # Process all arguments currently available in this function - # environment. If either ARGSS or ARGSL local variables have been - # defined, argument processing goes through getopt for validation. - tcar_setModuleArguments "${@}" - - # Redefine positional parameters using TCAR_MODULE_ARGUMENT variable. - eval set -- "${TCAR_MODULE_ARGUMENT}" - - # Look for options passed through command-line. - while true; do - case "${1}" in - - --docs ) - MAILADDRS="${TCAR_BRAND}-docs@$(tcar_printUrl --domain)" - shift 1 - ;; - - --as-html-link ) - MAILADDRS="${2}" - shift 2 - ;; - - -- ) - - shift 1 - break - ;; - esac - done - - # Print mail address. - echo "${MAILADDRS}" - -} diff --git a/tcar-scripts/tcar_printMessage.sh b/tcar-scripts/tcar_printMessage.sh deleted file mode 100755 index cc1b324..0000000 --- a/tcar-scripts/tcar_printMessage.sh +++ /dev/null @@ -1,304 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_printMessage.sh -- This function standardizes the way messages -# are printed by tcar.sh script. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_printMessage { - - # Reset text domain locally, in order to prevent this function - # from using the last text domain definition. By default all - # common functions do use the same MO file. - local TEXTDOMAIN="${TCAR_SCRIPT_PACKAGE}" - - local MESSAGE="${1}" - local FORMAT="${2}" - - # Verify message variable, it cannot have an empty value. - if [[ -z ${MESSAGE} ]];then - tcar_printMessage "`gettext "The message cannot be empty."`" --as-error-line - fi - - # Define message horizontal width. This is the max number of - # horizontal characters the message will use to be displayed on - # the screen. - local MESSAGE_WIDTH=66 - - # Remove empty spaces from message. - MESSAGE=$(printf %s "${MESSAGE}" | sed -r -e 's!^[[:space:]]+!!') - - # Print messages that will always be printed no matter what value - # the TCAR_FLAG_QUIET variable has. - case "${FORMAT}" in - - --as-stdout-line* ) - - local MARGIN_LEFT=15 - if [[ ${FORMAT} =~ '--as-stdout-line=[[:digit:]]+' ]];then - MARGIN_LEFT=$(echo ${FORMAT} | cut -d'=' -f2) - fi - - # Default printing format. This is the format used when no - # other specification is passed to this function. As - # convenience, we transform absolute paths into relative - # paths in order to free horizontal space on final output - # messages. - printf %s "${MESSAGE}" | sed -r \ - -e "s!${TCAR_BASEDIR}/!!g" \ - -e "s!> /!> !g" \ - -e "s!/{2,}!/!g" \ - | gawk 'BEGIN { FS=": " } - { - if ( $0 ~ /^-+$/ ) - print $0 - else - printf "%-'${MARGIN_LEFT}'s\t%s\n", $1, $2 - } - END {}' - ;; - - --as-error-line ) - - # Build the error trail. This is very useful for tracking - # the error down. - tcar_printMessage '-' --as-separator-line - tcar_printMessage "${FUNCNAME[*]}" --as-tree-line - - # Build the error message. - tcar_printMessage '-' --as-separator-line - tcar_printMessage "$(tcar_printCaller 1) ${MESSAGE}" --as-stderr-line - tcar_printMessage '-' --as-separator-line - - # Finish script execution with exit status 1 (SIGHUP) to - # imply the script finished because an error. We are - # using this as convention to finish the script execution. - # So, don't remove the following line, please. - exit 1 - ;; - - --as-debugger-line ) - if [[ ${TCAR_FLAG_DEBUG} == 'true' ]];then - tcar_printMessage "$(date +"%c") ${MESSAGE}" --as-stdout-line=60 - else - return - fi - ;; - - --as-tree-line ) - local NAME - local -a FN - for NAME in ${MESSAGE};do - FN[++((${#FN[*]}))]=${NAME} - done - local COUNT=$(( ${#FN[*]} - 2 )) - local SEPARATOR='`--' - local SPACES=0 - echo "${TCAR_SCRIPT_BASEDIR}/${TCAR_SCRIPT_PACKAGE}" 1>&2 - while [[ ${COUNT} -gt 0 ]];do - if [[ ${COUNT} -eq $(( ${#FN[*]} - 2 )) ]];then - echo ${SEPARATOR} ${FN[${COUNT}]} 1>&2 - else - echo ${FN[${COUNT}]} \ - | gawk '{ printf "%'${SPACES}'s%s %s\n", "", "'${SEPARATOR}'", $1 }' 1>&2 - fi - COUNT=$((${COUNT} - 1)) - SPACES=$((${SPACES} + 4)) - done - ;; - - --as-toknowmore-line ) - tcar_printMessage "`gettext "To know more, run"` ${TCAR_SCRIPT_PACKAGE} ${MESSAGE} --help" --as-stderr-line - ;; - - --as-yesornorequest-line ) - - # Define positive answer. - local Y="`gettext "yes"`" - - # Define negative answer. - local N="`gettext "no"`" - - # Define default answer. - local ANSWER=${N} - - if [[ ${TCAR_FLAG_YES} == 'true' ]];then - - ANSWER=${Y} - - else - - # Print the question to standard error. - tcar_printMessage "${MESSAGE} [${Y}/${N}]" --as-request-line - - # Redefine default answer based on user's input. - read ANSWER - - fi - - # Verify user's answer. Only positive answer let the - # script flow to continue. Otherwise, if something - # different from positive answer is passed, the script - # terminates its execution immediately. - if [[ ! ${ANSWER} =~ "^${Y}" ]];then - exit - fi - ;; - - --as-selection-line ) - # Create selection based on message. - local NAME='' - select NAME in ${MESSAGE};do - echo ${NAME} - break - done - ;; - - --as-response-line ) - tcar_printMessage "--> ${MESSAGE}" --as-stderr-line - ;; - - --as-request-line ) - tcar_printMessage "${MESSAGE}:\040" --as-notrailingnew-line - ;; - - --as-notrailingnew-line ) - echo -e -n "${MESSAGE}" | sed -r \ - -e "s!${TCAR_BASEDIR}/!!g" 1>&2 - ;; - - --as-stderr-line ) - echo "${MESSAGE}" | sed -r \ - -e "s!${TCAR_BASEDIR}/!!g" 1>&2 - ;; - - esac - - # Verify quiet option. The quiet option controls whether messages - # are printed or not. - if [[ "${TCAR_FLAG_QUIET}" == 'true' ]];then - return - fi - - # Print messages that will be printed only when the TCAR_FLAG_QUIET - # variable is provided to tcar.sh script. - case "${FORMAT}" in - - --as-separator-line ) - - # Build the separator line. - MESSAGE=$(\ - until [[ ${MESSAGE_WIDTH} -eq 0 ]];do - echo -n "$(echo ${MESSAGE} | sed -r 's!(.).*!\1!')" - MESSAGE_WIDTH=$((${MESSAGE_WIDTH} - 1)) - done) - - # Draw the separator line. - echo "${MESSAGE}" 1>&2 - ;; - - --as-banner-line ) - tcar_printMessage '-' --as-separator-line - tcar_printMessage "${MESSAGE}" --as-stdout-line - tcar_printMessage '-' --as-separator-line - ;; - - --as-processing-line ) - tcar_printMessage "`gettext "Processing"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-cropping-line ) - tcar_printMessage "`gettext "Cropping from"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-tuningup-line ) - tcar_printMessage "`gettext "Tuning-up"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-checking-line ) - tcar_printMessage "`gettext "Checking"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-combining-line ) - tcar_printMessage "`gettext "Combining"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-editing-line ) - tcar_printMessage "`gettext "Editing"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-creating-line | --as-updating-line ) - if [[ -a "${MESSAGE}" ]];then - tcar_printMessage "`gettext "Updating"`: ${MESSAGE}" --as-stdout-line - else - tcar_printMessage "`gettext "Creating"`: ${MESSAGE}" --as-stdout-line - fi - ;; - - --as-deleting-line ) - tcar_printMessage "`gettext "Deleting"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-reading-line ) - tcar_printMessage "`gettext "Reading"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-savedas-line ) - tcar_printMessage "`gettext "Saved as"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-linkto-line ) - tcar_printMessage "`gettext "Linked to"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-movedto-line ) - tcar_printMessage "`gettext "Moved to"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-translation-line ) - tcar_printMessage "`gettext "Translation"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-translating-line ) - tcar_printMessage "`gettext "Translating"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-validating-line ) - tcar_printMessage "`gettext "Validating"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-template-line ) - tcar_printMessage "`gettext "Template"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-configuration-line ) - tcar_printMessage "`gettext "Configuration"`: ${MESSAGE}" --as-stdout-line - ;; - - --as-palette-line ) - tcar_printMessage "`gettext "Palette"`: ${MESSAGE}" --as-stdout-line - ;; - - esac - -} diff --git a/tcar-scripts/tcar_printUrl.sh b/tcar-scripts/tcar_printUrl.sh deleted file mode 100755 index a7f3992..0000000 --- a/tcar-scripts/tcar_printUrl.sh +++ /dev/null @@ -1,150 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_printUrl.sh -- This function standardizes the way URLs are -# printed by tcar.sh script. This function describes the -# domain organization of The CentOS Project through its URLs and -# provides a way to print them out when needed. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_printUrl { - - local URL='' - - # Define short options. - local ARGSS='' - - # Define long options. - local ARGSL='domain,home,lists,wiki,forums,bugs,planet,docs,mirrors,projects,svn,trac,irc,cc-sharealike,with-locale,as-html-link' - - # Initialize arguments with an empty value and set it as local - # variable to this function scope. Doing this is very important to - # avoid any clash with higher execution environments. - local TCAR_MODULE_ARGUMENT='' - - # Process all arguments currently available in this function - # environment. If either ARGSS or ARGSL local variables have been - # defined, argument processing goes through getopt for validation. - tcar_setModuleArguments "${@}" - - # Redefine positional parameters using TCAR_MODULE_ARGUMENT variable. - eval set -- "${TCAR_MODULE_ARGUMENT}" - - # Look for options passed through command-line. - while true; do - case "${1}" in - - --domain ) - URL="centos.org" - shift 1 - ;; - - --home ) - URL="http://www.$(tcar_printUrl --domain)/" - shift 1 - ;; - - --lists ) - URL="http://lists.$(tcar_printUrl --domain)/" - shift 1 - ;; - - --wiki ) - URL="http://wiki.$(tcar_printUrl --domain)/" - shift 1 - ;; - - --forums ) - URL="http://forums.$(tcar_printUrl --domain)/" - shift 1 - ;; - - --bugs ) - URL="http://bugs.$(tcar_printUrl --domain)/" - shift 1 - ;; - - --projects ) - URL="https://projects.$(tcar_printUrl --domain)/" - shift 1 - ;; - - --svn ) - URL="$(tcar_printUrl --projects)svn/" - shift 1 - ;; - - --trac ) - URL="$(tcar_printUrl --projects)trac/" - shift 1 - ;; - - --planet ) - URL="http://planet.$(tcar_printUrl --domain)/" - shift 1 - ;; - - --docs ) - URL="http://docs.$(tcar_printUrl --domain)/" - shift 1 - ;; - - --mirrors ) - URL="http://mirrors.$(tcar_printUrl --domain)/" - shift 1 - ;; - - --irc ) - URL="http://$(tcar_printUrl --home)modules/tinycontent/index.php?id=8" - shift 1 - ;; - - --cc-sharealike ) - URL="http://creativecommons.org/licenses/by-sa/3.0/" - shift 1 - ;; - - --with-locale ) - if [[ ! ${LANG} =~ '^en' ]];then - URL="${URL}${TCAR_SCRIPT_LANG_LL}/" - fi - shift 1 - ;; - - --as-html-link ) - URL="${URL}" - shift 1 - ;; - - -- ) - - shift 1 - break - ;; - esac - done - - # Print Url. - echo "${URL}" - -} diff --git a/tcar-scripts/tcar_printVersion.sh b/tcar-scripts/tcar_printVersion.sh deleted file mode 100755 index efebabc..0000000 --- a/tcar-scripts/tcar_printVersion.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_printVersion.sh -- This function standardizes the way -# tcar.sh script prints version about itself. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_printVersion { - - # Reset text domain locally, in order to prevent this function - # from using the last text domain definition. By default all - # common functions do use the same MO file. - local TEXTDOMAIN="${TCAR_SCRIPT_PACKAGE}" - - local PROGRAM_NAME=${1:-${TCAR_SCRIPT_PACKAGE}} - local YEAR=$(tcar_printCopyrightInfo --year) - local HOLDER=$(tcar_printCopyrightInfo --holder) - - if [[ ${PROGRAM_NAME} == ${TCAR_SCRIPT_PACKAGE} ]];then - tcar_printMessage "${TCAR_SCRIPT_PACKAGE} ${TCAR_SCRIPT_VERSION}" --as-stdout-line - else - tcar_printMessage "${PROGRAM_NAME} (${TCAR_SCRIPT_PACKAGE}) ${TCAR_SCRIPT_VERSION}" --as-stdout-line - fi - tcar_printMessage "Copyright (C) ${YEAR} ${HOLDER}" --as-stdout-line - tcar_printMessage "`eval_gettext "\\\$PROGRAM_NAME comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of \\\$PROGRAM_NAME under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING."`" --as-stdout-line | fold --width=66 --spaces - - exit 0 - -} diff --git a/tcar-scripts/tcar_setModuleArguments.sh b/tcar-scripts/tcar_setModuleArguments.sh deleted file mode 100755 index 5d32e96..0000000 --- a/tcar-scripts/tcar_setModuleArguments.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_setModuleArguments.sh -- This function uses getopt to process -# arguments passed to tcar.sh script. -# -# This function works with the following three variables: -# -# ARGSS -# Stores getopt short arguments definition. -# -# ARGSL -# Stores getopt long arguments definition. -# -# TCAR_MODULE_ARGUMENT -# Stores arguments passed to functions or command-line -# interface depending the context it is defined. -# -# These three variables are not defined in this function but the -# function environment you want to provide option parsing for, -# through getopt command. Using local definition for these three -# variables let you to nest option parsing inside different -# function-environment levels. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_setModuleArguments { - - # Reset text domain locally, in order to prevent this function - # from using the last text domain definition. By default all - # common functions do use the same MO file. - local TEXTDOMAIN="${TCAR_SCRIPT_PACKAGE}" - - # Verify non-option arguments passed to command-line. If there - # isn't any or dot is provided, redefine the TCAR_MODULE_ARGUMENT - # variable to use the current location the tcar.sh script - # was called from. - if [[ -z "${TCAR_MODULE_ARGUMENT}" ]];then - TCAR_MODULE_ARGUMENT=${PWD} - fi - - # Verify presence of either short or long options in the - # environment. If they are present apply option validation through - # getopt. - if [[ ! -z ${ARGSS} ]] || [[ ! -z ${ARGSL} ]];then - - # Redefine positional parameters using TCAR_MODULE_ARGUMENT variable. - eval set -- "${TCAR_MODULE_ARGUMENT}" - - # Process positional parameters using getopt's option validation. - TCAR_MODULE_ARGUMENT=$(getopt -o "${ARGSS}" -l "${ARGSL}" \ - -n "${TCAR_SCRIPT_PACKAGE} (${TCAR_MODULE_NAME})" -- "${@}") - - # Verify getopt's exit status and finish the script execution - # with an error message, if it failed. - if [[ $? -ne 0 ]];then - tcar_printMessage "`gettext "The argument verification failed."`" --as-error-line - fi - - fi - -} diff --git a/tcar-scripts/tcar_setModuleEnvironment.sh b/tcar-scripts/tcar_setModuleEnvironment.sh deleted file mode 100755 index 12af7a6..0000000 --- a/tcar-scripts/tcar_setModuleEnvironment.sh +++ /dev/null @@ -1,190 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_setModuleEnvironment.sh -- This function initiates module -# environments inside the tcar.sh script. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_setModuleEnvironment { - - local ARG_MODULE_NAME='' - local ARG_MODULE_TYPE='' - local ARG_MODULE_ARGS='' - - # Retrieve module's name and module's type from arguments passed - # through this function positional parameters. - OPTIND=1 - while getopts "m:,t:,g:" OPTION "${@}"; do - case "${OPTION}" in - m ) ARG_MODULE_NAME="${OPTARG}" ;; - t ) ARG_MODULE_TYPE="${OPTARG}" ;; - g ) ARG_MODULE_ARGS="${OPTARG} ${ARG_MODULE_ARGS}" ;; - esac - done - - # Clean up positional parameters to reflect the fact that options - # have been processed already. - shift $(( ${OPTIND} - 1 )) - - # Initialize module's global counter. - TCAR_MODULE_COUNT=${TCAR_MODULE_COUNT:-0} - - # When the last module in the chain of executed modules is the - # same module being currently executed, don't create a new - # position for it in the chain of modules. Instead, use the - # information it already has from its previous execution. In order - # for this to work, the current module must be executed as sibling - # module of other module or itself. - if [[ ${TCAR_MODULE_COUNT} -gt 0 ]];then - if [[ ${TCAR_MODULE_NAMES[((${TCAR_MODULE_COUNT} - 1))]} == ${ARG_MODULE_NAME} ]];then - if [[ ${ARG_MODULE_TYPE} == 'sibling' ]];then - tcar_printMessage '~~~~~~~~~~~~~~~~~~~~~~~~~> : '"${TCAR_MODULE_NAME} ${TCAR_MODULE_ARGUMENT}" --as-debugger-line - ${ARG_MODULE_NAME} ${ARG_MODULE_ARGS} ${@} - return - fi - fi - fi - - tcar_printMessage '=========================>: ['${TCAR_MODULE_COUNT}'] | '${FUNCNAME[1]} --as-debugger-line - - # Define module's base directory. This is the directory where the - # initialization script is stored in. - local TCAR_MODULE_BASEDIR=${TCAR_SCRIPT_MODULES_BASEDIR} - if [[ ${#TCAR_MODULE_BASEDIRS[*]} -gt 0 ]];then - if [[ ${ARG_MODULE_TYPE} == "parent" ]];then - TCAR_MODULE_BASEDIR=${TCAR_SCRIPT_MODULES_BASEDIR} - elif [[ ${ARG_MODULE_TYPE} == "sibling" ]];then - if [[ ${TCAR_MODULE_TYPES[((${TCAR_MODULE_COUNT} - 1 ))]} == 'sibling' ]];then - TCAR_MODULE_BASEDIR=${TCAR_MODULE_BASEDIRS[((${TCAR_MODULE_COUNT}-2))]} - else - TCAR_MODULE_BASEDIR=${TCAR_MODULE_BASEDIRS[((${TCAR_MODULE_COUNT}-1))]} - fi - else - TCAR_MODULE_BASEDIR=${TCAR_MODULE_BASEDIRS[${TCAR_MODULE_COUNT}]} - fi - fi - tcar_printMessage "TCAR_MODULE_BASEDIR : ${TCAR_MODULE_BASEDIR}" --as-debugger-line - - # Define module's name. - TCAR_MODULE_NAMES[${TCAR_MODULE_COUNT}]=$(tcar_getRepoName "${ARG_MODULE_NAME:-unknown}" "-f" | cut -d '-' -f1) - local TCAR_MODULE_NAME=${TCAR_MODULE_NAMES[${TCAR_MODULE_COUNT}]} - tcar_printMessage "TCAR_MODULE_NAME : [${TCAR_MODULE_COUNT}]=${TCAR_MODULE_NAME}" --as-debugger-line - - # Define module's type. - TCAR_MODULE_TYPES[${TCAR_MODULE_COUNT}]="${ARG_MODULE_TYPE:-parent}" - local TCAR_MODULE_TYPE=${TCAR_MODULE_TYPES[${TCAR_MODULE_COUNT}]} - tcar_printMessage "TCAR_MODULE_TYPE : ${TCAR_MODULE_TYPE}" --as-debugger-line - - # Define module's arguments. This variable is used in different - # module environments to pass positional parameters from one - # environment to another using local definitions. - TCAR_MODULE_ARGUMENTS[${TCAR_MODULE_COUNT}]="${ARG_MODULE_ARGS:-} ${@}" - local TCAR_MODULE_ARGUMENT=${TCAR_MODULE_ARGUMENTS[${TCAR_MODULE_COUNT}]} - tcar_printMessage "TCAR_MODULE_ARGUMENT : ${TCAR_MODULE_ARGUMENT}" --as-debugger-line - - # Check module's name possible values. - tcar_checkModuleName - - # Define module's directory. - TCAR_MODULE_DIRS[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_BASEDIR}/$(tcar_getRepoName "${TCAR_MODULE_NAME}" "-d") - local TCAR_MODULE_DIR=${TCAR_MODULE_DIRS[${TCAR_MODULE_COUNT}]} - tcar_printMessage "TCAR_MODULE_DIR : ${TCAR_MODULE_DIR}" --as-debugger-line - - # Define module's directories not reused from module's parent - # directory structure. - TCAR_MODULE_DIRS_MODULES[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIR}/Modules - local TCAR_MODULE_DIR_MODULES=${TCAR_MODULE_DIRS_MODULES[${TCAR_MODULE_COUNT}]} - tcar_printMessage "TCAR_MODULE_DIR_MODULES : ${TCAR_MODULE_DIR_MODULES}" --as-debugger-line - - TCAR_MODULE_DIRS_CONFIGS[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIR}/Configs - local TCAR_MODULE_DIR_CONFIGS=${TCAR_MODULE_DIRS_CONFIGS[${TCAR_MODULE_COUNT}]} - tcar_printMessage "TCAR_MODULE_DIR_CONFIGS : ${TCAR_MODULE_DIR_CONFIGS}" --as-debugger-line - - # Define module's directories reused from module's parent - # directory structure. - TCAR_MODULE_DIRS_MANUALS[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIRS[0]}/Manuals - local TCAR_MODULE_DIR_MANUALS=${TCAR_MODULE_DIRS_MANUALS[${TCAR_MODULE_COUNT}]} - tcar_printMessage "TCAR_MODULE_DIR_MANUALS : ${TCAR_MODULE_DIR_MANUALS}" --as-debugger-line - - TCAR_MODULE_DIRS_LOCALES[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIRS[0]}/Locales - local TCAR_MODULE_DIR_LOCALES=${TCAR_MODULE_DIRS_LOCALES[${TCAR_MODULE_COUNT}]} - tcar_printMessage "TCAR_MODULE_DIR_LOCALES : ${TCAR_MODULE_DIR_LOCALES}" --as-debugger-line - - # Define module's initialization file. - TCAR_MODULE_INIT_FILES[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIR}/${TCAR_MODULE_NAME}.sh - local TCAR_MODULE_INIT_FILE=${TCAR_MODULE_INIT_FILES[${TCAR_MODULE_COUNT}]} - tcar_printMessage "TCAR_MODULE_INIT_FILE : ${TCAR_MODULE_INIT_FILE}" --as-debugger-line - - # Define module's connection with their localization files. It is - # required that gettext-specific variables be defined locally, in - # order to implement per-module localization. - local TEXTDOMAIN=$(basename ${TCAR_MODULE_INIT_FILE}) - tcar_printMessage "TEXTDOMAIN: ${TEXTDOMAIN}" --as-debugger-line - - # Increment module's counter just before creating next module's - # base directory. - TCAR_MODULE_COUNT=$(( ${TCAR_MODULE_COUNT} + 1 )) - - # Define next module's base directory. - TCAR_MODULE_BASEDIRS[${TCAR_MODULE_COUNT}]=${TCAR_MODULE_DIR_MODULES} - - # Check function script execution rights. - tcar_checkFiles -ex ${TCAR_MODULE_INIT_FILE} - - # Load module-specific (function) scripts into current execution - # environment. Keep the tcar_setModuleEnvironmentScripts function - # call after all variables and arguments definitions. - tcar_setModuleEnvironmentScripts - - # Execute module's initialization script with its arguments. - tcar_printMessage '-------------------------> : '"${TCAR_MODULE_NAME} ${TCAR_MODULE_ARGUMENT}" --as-debugger-line - ${TCAR_MODULE_NAME} ${TCAR_MODULE_ARGUMENT} - - # Unset module-specific environment. - tcar_printMessage '<------------------------- : '"${TCAR_MODULE_NAME} ${TCAR_MODULE_ARGUMENT}" --as-debugger-line - tcar_unsetModuleEnvironment - - # Decrement module counter just after unset unused module - # environments. - TCAR_MODULE_COUNT=$(( ${TCAR_MODULE_COUNT} - 1 )) - - # Unset array and non-array variables used in this function. - if [[ ${TCAR_MODULE_COUNT} -eq 0 ]];then - unset TCAR_MODULE_NAMES - unset TCAR_MODULE_BASEDIRS - unset TCAR_MODULE_DIRS - unset TCAR_MODULE_DIRS_MODULES - unset TCAR_MODULE_DIRS_MANUALS - unset TCAR_MODULE_DIRS_LOCALES - unset TCAR_MODULE_DIRS_CONFIGS - unset TCAR_MODULE_NAME - unset TCAR_MODULE_DIR - unset TCAR_MODULE_DIR_MODULES - unset TCAR_MODULE_DIR_MANUALS - unset TCAR_MODULE_DIR_LOCALES - unset TCAR_MODULE_DIR_CONFIGS - fi - - tcar_printMessage '<=========================: ['${TCAR_MODULE_COUNT}'] | '${FUNCNAME[1]} --as-debugger-line - -} diff --git a/tcar-scripts/tcar_setModuleEnvironmentScripts.sh b/tcar-scripts/tcar_setModuleEnvironmentScripts.sh deleted file mode 100755 index 5d81439..0000000 --- a/tcar-scripts/tcar_setModuleEnvironmentScripts.sh +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_setModuleEnvironmentScripts.sh -- This function standardizes -# the way specific functionalities are exported to tcar.sh -# script environment. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_setModuleEnvironmentScripts { - - # Reset text domain locally, in order to prevent this function - # from using the last text domain definition. By default all - # common functions do use the same MO file. - local TEXTDOMAIN="${TCAR_SCRIPT_PACKAGE}" - - # Define the pattern used to retrieve function names from function - # files. - local FUNCTION_PATTERN="^function[[:space:]]+${TCAR_MODULE_NAME}(_[[:alnum:]]+)?[[:space:]]+{[[:space:]]*$" - - # Define the list of files. - local TCAR_MODULE_SCRIPT='' - local TCAR_MODULE_SCRIPTS="${TCAR_MODULE_INIT_FILE}" - if [[ -d ${TCAR_MODULE_DIR} ]];then - TCAR_MODULE_SCRIPTS="${TCAR_MODULE_SCRIPTS} - $(tcar_getFilesList \ - -p "${TCAR_MODULE_DIR}/${TCAR_MODULE_NAME}_[[:alnum:]]+\.sh$" \ - -t 'f' ${TCAR_MODULE_DIR})" - fi - - # Verify the list of files. If no function file exists for the - # location specified stop the script execution. Otherwise the - # script will surely try to execute a function that haven't been - # exported yet and report an error about it. - if [[ -z ${TCAR_MODULE_SCRIPTS} ]];then - tcar_printMessage "${FUNCNAME}: `gettext "No function file was found."`" --as-error-line - fi - - # Process the list of files. - for TCAR_MODULE_SCRIPT in ${TCAR_MODULE_SCRIPTS};do - - # Verify the execution rights for function file. - tcar_checkFiles -ex ${TCAR_MODULE_SCRIPT} - - # Retrieve the function's name from function's file. - local TCAR_MODULE_SCRIPT_FN=$(egrep "${FUNCTION_PATTERN}" ${TCAR_MODULE_SCRIPT} \ - | gawk '{ print $2 }') - - # Verify function's name. It cannot be an empty value. - if [[ -z "${TCAR_MODULE_SCRIPT_FN}" ]];then - tcar_printMessage "`gettext "No function definition found."`" --as-error-line - fi - - # Verify that function files have not been already exported. - # If they have been already exported don't export them again. - # Instead, continue with the next function file in the list. - declare -F | gawk '{ print $3 }' | egrep "^${TCAR_MODULE_SCRIPT}$" > /dev/null - if [[ $? -eq 0 ]];then - continue - fi - - # Initialize the function file. - . ${TCAR_MODULE_SCRIPT} - - # Export the function names inside the file to current shell - # script environment. - export -f ${TCAR_MODULE_SCRIPT_FN} - - tcar_printMessage "export -f : ${TCAR_MODULE_SCRIPT_FN}" --as-debugger-line - - done - -} diff --git a/tcar-scripts/tcar_setTranslationMarkers.sh b/tcar-scripts/tcar_setTranslationMarkers.sh deleted file mode 100755 index 43d61bc..0000000 --- a/tcar-scripts/tcar_setTranslationMarkers.sh +++ /dev/null @@ -1,185 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_setTranslationMarkers.sh -- This function standardizes construction -# of translation markers and their related expansion. As convention, -# translation markers must be set inside source files (e.g., -# Docbook, Svg, etc.) and expanded inside temporal instances used to -# produce final contents. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_setTranslationMarkers { - - # Initialize variables. - local -a SRC - local -a DST - local COUNT=0 - local COUNTSRC=0 - local COUNTDST=0 - - # Define source location on which sed replacements take place. - local LOCATION="${1}" - - # Verify that source location does exist. - tcar_checkFiles -ef ${LOCATION} - - # Define copyright translation markers. - SRC[((++${#SRC[*]}))]='=COPYRIGHT_YEAR_FIRST=' - DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --first-year)" - SRC[((++${#SRC[*]}))]='=COPYRIGHT_YEAR(_LAST)?=' - DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --year)" - SRC[((++${#SRC[*]}))]='=COPYRIGHT_YEAR(S)?_LIST=' - DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --years-list)" - SRC[((++${#SRC[*]}))]='=COPYRIGHT_HOLDER=' - DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --holder)" - SRC[((++${#SRC[*]}))]='=COPYRIGHT_HOLDER_PREDICATE=' - DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --holder-predicate)" - - # Define license translation markers. - SRC[((++${#SRC[*]}))]='=LICENSE=' - DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --license)" - SRC[((++${#SRC[*]}))]='=LICENSE_URL=' - DST[((++${#DST[*]}))]="$(tcar_printCopyrightInfo --license-url)" - - # Define theme translation markers. - SRC[((++${#SRC[*]}))]='=THEME=' - DST[((++${#DST[*]}))]="$(tcar_getPathComponent ${RENDER_TARGET} --motif)" - SRC[((++${#SRC[*]}))]='=THEMENAME=' - DST[((++${#DST[*]}))]="$(tcar_getPathComponent ${RENDER_TARGET} --motif-name)" - SRC[((++${#SRC[*]}))]='=THEMERELEASE=' - DST[((++${#DST[*]}))]="$(tcar_getPathComponent ${RENDER_TARGET} --motif-version)" - - # Define url translation markers. - SRC[((++${#SRC[*]}))]='=URL=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--home' '--with-locale') - SRC[((++${#SRC[*]}))]='=URL_WIKI=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--wiki' '--with-locale') - SRC[((++${#SRC[*]}))]='=URL_LISTS=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--lists' '--with-locale') - SRC[((++${#SRC[*]}))]='=URL_FORUMS=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--forums' '--with-locale') - SRC[((++${#SRC[*]}))]='=URL_MIRRORS=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--mirrors' '--with-locale') - SRC[((++${#SRC[*]}))]='=URL_DOCS=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--docs' '--with-locale') - SRC[((++${#SRC[*]}))]='=URL_PROJECTS=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--projects' '--with-locale') - SRC[((++${#SRC[*]}))]='=URL_BUGS=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--bugs' '--with-locale') - SRC[((++${#SRC[*]}))]='=URL_SVN=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--svn' '--with-locale') - SRC[((++${#SRC[*]}))]='=URL_TRAC=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--trac' '--with-locale') - SRC[((++${#SRC[*]}))]='=URL_PLANET=' - DST[((++${#DST[*]}))]=$(tcar_printUrl '--planet' '--with-locale') - - # Define release translation markers. - SRC[((++${#SRC[*]}))]='=RELEASE=' - DST[((++${#DST[*]}))]=${RELEASE} - SRC[((++${#SRC[*]}))]='=MAJOR_RELEASE=' - DST[((++${#DST[*]}))]=${MAJOR_RELEASE} - - # Define emails translation markers. - SRC[((++${#SRC[*]}))]='=MAIL_DOCS=' - DST[((++${#DST[*]}))]="$(tcar_printMailingList --docs)" - - # Define locale translation markers. - SRC[((++${#SRC[*]}))]='=LOCALE=' - DST[((++${#DST[*]}))]="${TCAR_SCRIPT_LANG_LC}" - SRC[((++${#SRC[*]}))]='=LOCALE_LL=' - DST[((++${#DST[*]}))]="${TCAR_SCRIPT_LANG_LL}" - SRC[((++${#SRC[*]}))]='=LOCALE_CC=' - DST[((++${#DST[*]}))]="${TCAR_SCRIPT_LANG_CC}" - - # Define domain translation markers for domains. - SRC[((++${#SRC[*]}))]='=DOMAIN_LL=' - if [[ ! ${TCAR_SCRIPT_LANG_LL} =~ '^en' ]];then - DST[((++${#DST[*]}))]="${TCAR_SCRIPT_LANG_LL}" - else - DST[((++${#DST[*]}))]="" - fi - - # Define repository translation markers. - SRC[((++${#SRC[*]}))]='=(REPO_TLDIR|REPO_HOME|TCAR_BASEDIR)=' - DST[((++${#DST[*]}))]="${TCAR_BASEDIR}" - - # Do replacement of nested translation markers. - while [[ ${COUNTDST} -lt ${#DST[@]} ]];do - - # Verify existence of translation markers. If there is no - # translation marker on replacement, continue with the next - # one in the list. - if [[ ! ${DST[${COUNTDST}]} =~ '=[A-Z_]+=' ]];then - # Increment destination counter. - COUNTDST=$((${COUNTDST} + 1)) - # The current replacement value doesn't have translation - # marker inside, so skip it and evaluate the next - # replacement value in the list. - continue - fi - - while [[ ${COUNTSRC} -lt ${#SRC[*]} ]];do - - # Update replacements. - DST[${COUNTDST}]=$(echo ${DST[${COUNTDST}]} \ - | sed -r "s!${SRC[${COUNTSRC}]}!${DST[${COUNTSRC}]}!g") - - # Increment source counter. - COUNTSRC=$((${COUNTSRC} + 1)) - - done - - # Reset source counter - COUNTSRC=0 - - # Increment destination counter. - COUNTDST=$((${COUNTDST} + 1)) - - done - - # Apply replacements for translation markers. - while [[ ${COUNT} -lt ${#SRC[*]} ]];do - - # Use sed to replace translation markers inside the design - # model instance. - sed -r -i "s!${SRC[${COUNT}]}!${DST[${COUNT}]}!g" ${LOCATION} - - # Increment counter. - COUNT=$((${COUNT} + 1)) - - done - - # Remove escaped character from translation markers. This is one - # of the reasons why translation marker should be expanded in - # source files instances not the source files themselves. - # Escaping translation markers provides a way of talking about - # them without expanding them. - sed -r -i 's/(=)\\([A-Z_]+=)/\1\2/g' ${LOCATION} - - # Unset specific translation markers and specific replacement - # variables in order to clean them up. Otherwise, undesired values - # may remain from one file to another. - unset SRC - unset DST - -} diff --git a/tcar-scripts/tcar_terminateScriptExecution.sh b/tcar-scripts/tcar_terminateScriptExecution.sh deleted file mode 100755 index 0f95ace..0000000 --- a/tcar-scripts/tcar_terminateScriptExecution.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_terminateScriptExecution.sh -- This function standardizes the -# actions that must be realized just before leaving the script -# execution (e.g., cleaning temporal files). This function is the -# one called when interruption signals like EXIT, SIGHUP, SIGINT and -# SIGTERM are detected. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_terminateScriptExecution { - - # Remove temporal directory. - rm -r ${TCAR_SCRIPT_TEMPDIR} - - # NOTE: Don't specify an exit status here. As convenction we do - # this when error messages are triggerd. See `--as-error-line' - # option from `tcar_printMessage' functionality. - -} diff --git a/tcar-scripts/tcar_unsetModuleEnvironment.sh b/tcar-scripts/tcar_unsetModuleEnvironment.sh deleted file mode 100755 index 188edaa..0000000 --- a/tcar-scripts/tcar_unsetModuleEnvironment.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -###################################################################### -# -# tcar_unsetModuleEnvironment.sh -- This function unsets -# functionalities from tcar.sh script execution environment. -# -# Written by: -# * Alain Reguera Delgado , 2009-2013 -# -# Copyright (C) 2009-2013 The CentOS Artwork SIG -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -# -###################################################################### - -function tcar_unsetModuleEnvironment { - - # Reset text domain locally, in order to prevent this function - # from using the last text domain definition. By default all - # common functions do use the same MO file. - local TEXTDOMAIN="${TCAR_SCRIPT_PACKAGE}" - - # Verify suffix value used to retrieve function files. - if [[ -z ${TCAR_MODULE_NAME} ]];then - tcar_printMessage "`gettext "The export id was not provided."`" --as-error-line - fi - - # Define list of format-specific functionalities. This is the list - # of function definitions previously exported by - # `tcar_setModuleEnvironmentScripts'. Be sure to limit the list - # to function names that start with the suffix specified only. - local TCAR_MODULE_SCRIPT_FN='' - local TCAR_MODULE_SCRIPT_FNS=$(declare -F | gawk '{ print $3 }' | egrep "^${TCAR_MODULE_NAME}") - - # Unset function names from current execution environment. - for TCAR_MODULE_SCRIPT_FN in ${TCAR_MODULE_SCRIPT_FNS};do - unset -f ${TCAR_MODULE_SCRIPT_FN} - tcar_printMessage "unset -f : ${TCAR_MODULE_SCRIPT_FN}" --as-debugger-line - done - -}