diff --git a/tcar-scripts-hello/Locales/es_ES/hello.sh.po b/tcar-scripts-hello/Locales/es_ES/hello.sh.po new file mode 100644 index 0000000..ca9fb03 --- /dev/null +++ b/tcar-scripts-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/tcar-scripts-hello/Modules/Output/Modules/Camel/camel.sh b/tcar-scripts-hello/Modules/Output/Modules/Camel/camel.sh new file mode 100755 index 0000000..44997f6 --- /dev/null +++ b/tcar-scripts-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/tcar-scripts-hello/Modules/Output/Modules/Lower/lower.sh b/tcar-scripts-hello/Modules/Output/Modules/Lower/lower.sh new file mode 100755 index 0000000..d1b82a9 --- /dev/null +++ b/tcar-scripts-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/tcar-scripts-hello/Modules/Output/Modules/Random/random.sh b/tcar-scripts-hello/Modules/Output/Modules/Random/random.sh new file mode 100755 index 0000000..d63b2d7 --- /dev/null +++ b/tcar-scripts-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/tcar-scripts-hello/Modules/Output/Modules/Upper/upper.sh b/tcar-scripts-hello/Modules/Output/Modules/Upper/upper.sh new file mode 100755 index 0000000..77e7c3e --- /dev/null +++ b/tcar-scripts-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/tcar-scripts-hello/Modules/Output/output.sh b/tcar-scripts-hello/Modules/Output/output.sh new file mode 100755 index 0000000..247c783 --- /dev/null +++ b/tcar-scripts-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/tcar-scripts-hello/hello.sh b/tcar-scripts-hello/hello.sh new file mode 100755 index 0000000..dee253b --- /dev/null +++ b/tcar-scripts-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/tcar-scripts-hello/hello_getOptions.sh b/tcar-scripts-hello/hello_getOptions.sh new file mode 100755 index 0000000..503640c --- /dev/null +++ b/tcar-scripts-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="${@}" + +}