From 389f0567f08006d0ed4d2b270f13f4799a914f3f Mon Sep 17 00:00:00 2001 From: Alain Reguera Delgado Date: Dec 11 2013 19:23:17 +0000 Subject: Merge branch 'tcar-scripts-hello' into tcar --- diff --git a/Documentation/Manpages/Locales/en_US/hello.asciidoc.po b/Documentation/Manpages/Locales/en_US/hello.asciidoc.po new file mode 100644 index 0000000..b0558b4 --- /dev/null +++ b/Documentation/Manpages/Locales/en_US/hello.asciidoc.po @@ -0,0 +1,225 @@ +msgid "" +msgstr "" +"Project-Id-Version: hello.asciidoc 0.6\n" +"POT-Creation-Date: 2013-11-07 14:34-0500\n" +"PO-Revision-Date: 2013-11-07 14:34-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 "hello" +msgstr "hello" + +msgid "1" +msgstr "1" + +msgid "Print out greetings and exit successfully." +msgstr "Print out greetings and exit successfully." + +msgid "centos-art hello [OPTIONS]" +msgstr "centos-art hello [OPTIONS]" + +msgid "Description" +msgstr "Description" + +msgid "" +"The hello module is very " +"simple. Its main purpose is to print out the “Hello, World!” " +"greeting to standard output and exit successfully. You can use " +"options to change the greeting message and the way it is printed " +"out. The hello module provides " +"a very simple example you can use as base to understand how modules " +"work inside centos-art.sh " +"script. You can this understanding to start writing your own " +"modules for centos-art.sh " +"script." +msgstr "" +"The hello module is very " +"simple. Its main purpose is to print out the “Hello, World!” " +"greeting to standard output and exit successfully. You can use " +"options to change the greeting message and the way it is printed " +"out. The hello module provides " +"a very simple example you can use as base to understand how modules " +"work inside centos-art.sh " +"script. You can this understanding to start writing your own " +"modules for centos-art.sh " +"script." + +msgid "Options" +msgstr "Options" + +msgid "" +"The hello module accepts the " +"following options:" +msgstr "" +"The hello module accepts the " +"following options:" + +msgid "-h | --help" +msgstr "-h | --help" + +msgid "Print out module's documentation." +msgstr "Print out module's documentation." + +msgid "-v | --version" +msgstr "-v | --version" + +msgid "Print out module's version and legal status." +msgstr "Print out module's version and legal status." + +msgid "-d | --debug" +msgstr "-d | --debug" + +msgid "" +"Run the script in debugging mode. This option is very useful if you " +"want to get a closer look to module environments being executed and " +"destroyed at run-time." +msgstr "" +"Run the script in debugging mode. This option is very useful if you " +"want to get a closer look to module environments being executed and " +"destroyed at run-time." + +msgid "-g \"TEXT\" | --greeting=\"TEXT\"" +msgstr "-g \"TEXT\" | --greeting=\"TEXT\"" + +msgid "" +"Set a different greeting message to be printed out. This option " +"accepts a value as argument. The text you provide must not have " +"empty spaces on it. By default, when you don't provide this option, " +"hello module prints out " +"“Hello, World” as greeting. If translations of this message are " +"available for your locale, they will be printed instead." +msgstr "" +"Set a different greeting message to be printed out. This option " +"accepts a value as argument. The text you provide must not have " +"empty spaces on it. By default, when you don't provide this option, " +"hello module prints out " +"“Hello, World” as greeting. If translations of this message are " +"available for your locale, they will be printed instead." + +msgid "-l | --lower" +msgstr "-l | --lower" + +msgid "" +"Print greeting message in lowercase. The final output is printed " +"out all in one line." +msgstr "" +"Print greeting message in lowercase. The final output is printed " +"out all in one line." + +msgid "-u | --upper" +msgstr "-u | --upper" + +msgid "" +"Print greeting message in uppercase. The final output is printed " +"out all in one line." +msgstr "" +"Print greeting message in uppercase. The final output is printed " +"out all in one line." + +msgid "-c | --camel" +msgstr "-c | --camel" + +msgid "" +"Print greeting messages in camel-case (e.g., \"HeLlO, WoRlD!\"). " +"The output is printed out one character per line. This might not " +"have sense but it helps to describe how execution of sibling " +"modules work. Notice that, when printing final output, punctuation " +"marks doesn't count for formating." +msgstr "" +"Print greeting messages in camel-case (e.g., \"HeLlO, WoRlD!\"). " +"The output is printed out one character per line. This might not " +"have sense but it helps to describe how execution of sibling " +"modules work. Notice that, when printing final output, punctuation " +"marks doesn't count for formating." + +msgid "-r | --random" +msgstr "-r | --random" + +msgid "" +"Print letters of a greeting message in a random order (e.g., " +"rdodldrl!,,!). The final output is printed out one character per " +"line. This might not have sense but it helps to describe how " +"recursive execution of sibling modules work." +msgstr "" +"Print letters of a greeting message in a random order (e.g., " +"rdodldrl!,,!). The final output is printed out one character per " +"line. This might not have sense but it helps to describe how " +"recursive execution of sibling modules work." + +msgid "Exit Status" +msgstr "Exit Status" + +msgid "" +"The hello module ends its " +"execution with one of the following exit status:" +msgstr "" +"The hello module ends its " +"execution with one of the following 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 "Authors" +msgstr "Authors" + +msgid "" +"The hello module has received " +"contribution from the following people:" +msgstr "" +"The hello module has received " +"contribution from the following people:" + +msgid "" +"Alain Reguera Delgado <al@centos.org.cu>, 2013" +msgstr "" +"Alain Reguera Delgado <al@centos.org.cu>, 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/Documentation/Manpages/hello.asciidoc b/Documentation/Manpages/hello.asciidoc new file mode 100644 index 0000000..3143a5c --- /dev/null +++ b/Documentation/Manpages/hello.asciidoc @@ -0,0 +1,106 @@ +hello(1) +======== + +Name +---- + +hello - Print out greetings and exit successfully. + +Synopsis +-------- + +*centos-art hello [OPTIONS]* + +Description +----------- + +The *hello* module is very simple. Its main purpose is to print out +the ``Hello, World!'' greeting to standard output and exit +successfully. You can use options to change the greeting message and +the way it is printed out. The *hello* module provides a very simple +example you can use as base to understand how modules work inside +*centos-art.sh* script. You can this understanding to start writing +your own modules for *centos-art.sh* script. + +Options +------- + +The *hello* module accepts the following options: + +*-h | --help*:: + Print out module's documentation. + +*-v | --version*:: + Print out module's version and legal status. + +*-d | --debug*:: + Run the script in debugging mode. This option is very useful if + you want to get a closer look to module environments being + executed and destroyed at run-time. + +*-g "TEXT" | --greeting="TEXT"*:: + Set a different greeting message to be printed out. This option + accepts a value as argument. The text you provide must not have + empty spaces on it. By default, when you don't provide this + option, *hello* module prints out ``Hello, World'' as greeting. If + translations of this message are available for your locale, they + will be printed instead. + +*-l | --lower*:: + Print greeting message in lowercase. The final output is printed + out all in one line. + +*-u | --upper*:: + Print greeting message in uppercase. The final output is printed + out all in one line. + +*-c | --camel*:: + Print greeting messages in camel-case (e.g., "HeLlO, WoRlD!"). + The output is printed out one character per line. This might not + have sense but it helps to describe how execution of sibling + modules work. Notice that, when printing final output, punctuation + marks doesn't count for formating. + +*-r | --random*:: + Print letters of a greeting message in a random order (e.g., + rdodldrl!,,!). The final output is printed out one character per + line. This might not have sense but it helps to describe how + recursive execution of sibling modules work. + +Exit Status +----------- + +The *hello* module ends its execution with one of the following exit +status: + +* 0 -- Exit successfully without errors. +* 1 -- Exit with errors. + +Authors +------- + +The *hello* module has received contribution from the following +people: + +* Alain Reguera Delgado , 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/Documentation/Manpages/render.conf b/Documentation/Manpages/render.conf deleted file mode 100644 index fef2aa6..0000000 --- a/Documentation/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/Scripts/Modules/Hello/Locales/es_ES/hello.sh.po b/Scripts/Modules/Hello/Locales/es_ES/hello.sh.po new file mode 100644 index 0000000..ca9fb03 --- /dev/null +++ b/Scripts/Modules/Hello/Locales/es_ES/hello.sh.po @@ -0,0 +1,16 @@ +msgid "" +msgstr "" +"Project-Id-Version: hello.sh 0.6\n" +"Report-Msgid-Bugs-To: centos-l10n-es@centos.org.cu\n" +"POT-Creation-Date: 2013-10-07 14:20-0400\n" +"PO-Revision-Date: 2013-10-07 14:20-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/Modules/Hello/hello.sh:30 +msgid "Hello, World!" +msgstr "¡Hola, Mundo!" diff --git a/Scripts/Modules/Hello/Modules/Output/Modules/Camel/camel.sh b/Scripts/Modules/Hello/Modules/Output/Modules/Camel/camel.sh new file mode 100755 index 0000000..44997f6 --- /dev/null +++ b/Scripts/Modules/Hello/Modules/Output/Modules/Camel/camel.sh @@ -0,0 +1,66 @@ +#!/bin/bash +###################################################################### +# +# camel.sh -- Print greeting messages in camel-case (e.g., "HeLlO, +# WoRlD!"). The output is printed out one character per line. This +# might not have sense but it helps to describe how execution of +# sibling modules work. Notice that, when printing final output, +# punctuation marks doesn't count for formating. +# +# 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 camel { + + local GREETING_CAMEL=1 + local GREETING_OFFSET=0 + local GREETING_CHARS=${#HELLO_WORLD} + local GREETING_MESSAGE=${HELLO_WORLD} + + while [[ ${GREETING_OFFSET} -lt ${GREETING_CHARS} ]]; do + + local HELLO_WORLD=${GREETING_MESSAGE:${GREETING_OFFSET}:1} + + if [[ ${GREETING_MESSAGE:${GREETING_OFFSET}:1} =~ '[[:alpha:]]' ]];then + + if [[ ${GREETING_CAMEL} -eq 1 ]];then + tcar_setModuleEnvironment -m 'upper' -t 'sibling' + GREETING_CAMEL=0 + else + tcar_setModuleEnvironment -m 'lower' -t 'sibling' + GREETING_CAMEL=1 + fi + + else + + if [[ ${GREETING_MESSAGE:${GREETING_OFFSET}:1} =~ ' ' ]];then + HELLO_WORLD='·' + fi + + tcar_printMessage "${HELLO_WORLD}" --as-stdout-line + + fi + + GREETING_OFFSET=$(( ${GREETING_OFFSET} + 1 )) + + done + +} diff --git a/Scripts/Modules/Hello/Modules/Output/Modules/Lower/lower.sh b/Scripts/Modules/Hello/Modules/Output/Modules/Lower/lower.sh new file mode 100755 index 0000000..d1b82a9 --- /dev/null +++ b/Scripts/Modules/Hello/Modules/Output/Modules/Lower/lower.sh @@ -0,0 +1,33 @@ +#!/bin/bash +###################################################################### +# +# lower.sh -- Print greeting message in lowercase. The final output +# is printed out all in one line. +# +# 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 lower { + + local GREETING=$(echo ${HELLO_WORLD} | tr '[[:upper:]]' '[[:lower:]]') + tcar_printMessage "${GREETING}" --as-stdout-line + +} diff --git a/Scripts/Modules/Hello/Modules/Output/Modules/Random/random.sh b/Scripts/Modules/Hello/Modules/Output/Modules/Random/random.sh new file mode 100755 index 0000000..d63b2d7 --- /dev/null +++ b/Scripts/Modules/Hello/Modules/Output/Modules/Random/random.sh @@ -0,0 +1,45 @@ +#!/bin/bash +###################################################################### +# +# random.sh -- Print letters of a greeting message in a random order +# (e.g., rdodldrl!,,!). The final output is printed out one +# character per line. This might not have sense but it helps to +# describe how recursive execution of sibling modules work. +# +# 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 random { + + local MESSAGE=${HELLO_WORLD} + local MAXCHAR=${#MESSAGE} + local COUNT=${1:-0} + local OFFSET=${RANDOM}; let "OFFSET %= ${MAXCHAR}" + + tcar_printMessage "${MESSAGE:${OFFSET}:1}" --as-stdout-line + + COUNT=$(( ${COUNT} + 1)) + + if [[ ${COUNT} -lt ${MAXCHAR} ]];then + tcar_setModuleEnvironment -m random -t sibling -g "${COUNT}" + fi + +} diff --git a/Scripts/Modules/Hello/Modules/Output/Modules/Upper/upper.sh b/Scripts/Modules/Hello/Modules/Output/Modules/Upper/upper.sh new file mode 100755 index 0000000..77e7c3e --- /dev/null +++ b/Scripts/Modules/Hello/Modules/Output/Modules/Upper/upper.sh @@ -0,0 +1,33 @@ +#!/bin/bash +###################################################################### +# +# upper.sh -- Print greeting message in uppercase. The final output +# is printed out all in one line. +# +# 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 upper { + + local GREETING=$(echo ${HELLO_WORLD} | tr '[[:lower:]]' '[[:upper:]]') + tcar_printMessage "${GREETING}" --as-stdout-line + +} diff --git a/Scripts/Modules/Hello/Modules/Output/output.sh b/Scripts/Modules/Hello/Modules/Output/output.sh new file mode 100755 index 0000000..247c783 --- /dev/null +++ b/Scripts/Modules/Hello/Modules/Output/output.sh @@ -0,0 +1,36 @@ +#!/bin/bash +###################################################################### +# +# output.sh -- Selects how to output the greeting message, based on +# the options you provided in the command-line. +# +# 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 output { + + local ACTION='' + + for ACTION in ${ACTIONS};do + tcar_setModuleEnvironment -m "${ACTION}" -t 'child' + done + +} diff --git a/Scripts/Modules/Hello/hello.sh b/Scripts/Modules/Hello/hello.sh new file mode 100755 index 0000000..dee253b --- /dev/null +++ b/Scripts/Modules/Hello/hello.sh @@ -0,0 +1,48 @@ +#!/bin/bash +###################################################################### +# +# hello.sh -- Print greeting messages 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 { + + # 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 + +} diff --git a/Scripts/Modules/Hello/hello_getOptions.sh b/Scripts/Modules/Hello/hello_getOptions.sh new file mode 100755 index 0000000..503640c --- /dev/null +++ b/Scripts/Modules/Hello/hello_getOptions.sh @@ -0,0 +1,90 @@ +#!/bin/bash +###################################################################### +# +# hello_getOptions.sh -- Interpret module-specific options for hello. +# +# 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_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="${@}" + +}