diff --git a/Scripts/Bash/Functions/cli.sh b/Scripts/Bash/Functions/cli.sh index 3ffe39a..b54c89d 100644 --- a/Scripts/Bash/Functions/cli.sh +++ b/Scripts/Bash/Functions/cli.sh @@ -57,10 +57,8 @@ function cli { # expression to match everything. REGEX='.+' - # Go to defined actions. Keep the cli_getActions function calling - # after all variables and arguments definitions. Reason? To make - # all variables and arguments definitions available inside - # cli_Actions and subsequent function calls inside it. - cli_getActions + # Go for function initialization. Keep the cli_getFunctions + # function calling after all variables and arguments definitions. + cli_getFunctions } diff --git a/Scripts/Bash/Functions/cli_getActions.sh b/Scripts/Bash/Functions/cli_getActions.sh deleted file mode 100644 index fc141ec..0000000 --- a/Scripts/Bash/Functions/cli_getActions.sh +++ /dev/null @@ -1,79 +0,0 @@ -#!/bin/bash -# -# cli_getActions.sh -- This function loads funtionalities supported by -# centos-art.sh script. -# -# Copyright (C) 2009, 2010 Alain Reguera Delgado -# -# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -# USA. -# -# ---------------------------------------------------------------------- -# $Id$ -# ---------------------------------------------------------------------- - -function cli_getActions { - - # Define variables as local to avoid conflicts outside. - local FUNCNAMDIR='' - local FUNCNAMFILES='' - local FUNCNAMSCRIPT='' - local FUNCNAMCALL='' - local REPOFUNDIR='' - - # Define path to directory where actions are stored inside the - # repository. - REPOFUNDIR=/home/centos/artwork/trunk/Scripts/Bash/Functions - - # Define action directory. - FUNCNAMDIR=$(cli_getRepoName $FUNCNAM 'd') - - # Define action file name. - FUNCNAMSCRIPT=${REPOFUNDIR}/${FUNCNAMDIR}/${FUNCNAM}.sh - - # Check action existence. - if [[ ! -f $FUNCNAMSCRIPT ]];then - cli_printMessage "`gettext "The action provided is not valid."`" - cli_printMessage "$(caller)" "AsToKnowMoreLine" - fi - - # Build action-specifc script file list. - FUNCNAMFILES=$(ls ${REPOFUNDIR}/${FUNCNAMDIR}/${FUNCNAM}*.sh) - - for FILE in $FUNCNAMFILES;do - - if [[ -x ${FILE} ]];then - - # Initialize action-specific functions. - . $FILE - - # Export action-specific functions to current shell script - # environment. - FUNCNAMCALL=$(grep '^function ' $FILE | cut -d' ' -f2) - export -f $FUNCNAMCALL - - else - - cli_printMessage "`eval_gettext "The \\\$FILE hasn't execution rights."`" - cli_printMessage "$(caller)" "AsToKnowMoreLine" - - fi - - done - - # Execute action passed to centos-art.sh script. - eval $FUNCNAM - -} diff --git a/Scripts/Bash/Functions/cli_getFunctions.sh b/Scripts/Bash/Functions/cli_getFunctions.sh new file mode 100644 index 0000000..8ca19c1 --- /dev/null +++ b/Scripts/Bash/Functions/cli_getFunctions.sh @@ -0,0 +1,79 @@ +#!/bin/bash +# +# cli_getFunctions.sh -- This function loads funtionalities supported by +# centos-art.sh script. +# +# Copyright (C) 2009, 2010 Alain Reguera Delgado +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. +# +# ---------------------------------------------------------------------- +# $Id$ +# ---------------------------------------------------------------------- + +function cli_getFunctions { + + # Define variables as local to avoid conflicts outside. + local FUNCNAMDIR='' + local FUNCNAMFILES='' + local FUNCNAMSCRIPT='' + local FUNCNAMCALL='' + local REPOFUNDIR='' + + # Define path to directory where actions are stored inside the + # repository. + REPOFUNDIR=/home/centos/artwork/trunk/Scripts/Bash/Functions + + # Define action directory. + FUNCNAMDIR=$(cli_getRepoName $FUNCNAM 'd') + + # Define action file name. + FUNCNAMSCRIPT=${REPOFUNDIR}/${FUNCNAMDIR}/${FUNCNAM}.sh + + # Check action existence. + if [[ ! -f $FUNCNAMSCRIPT ]];then + cli_printMessage "`gettext "The action provided is not valid."`" + cli_printMessage "$(caller)" "AsToKnowMoreLine" + fi + + # Build action-specifc script file list. + FUNCNAMFILES=$(ls ${REPOFUNDIR}/${FUNCNAMDIR}/${FUNCNAM}*.sh) + + for FILE in $FUNCNAMFILES;do + + if [[ -x ${FILE} ]];then + + # Initialize action-specific functions. + . $FILE + + # Export action-specific functions to current shell script + # environment. + FUNCNAMCALL=$(grep '^function ' $FILE | cut -d' ' -f2) + export -f $FUNCNAMCALL + + else + + cli_printMessage "`eval_gettext "The \\\$FILE hasn't execution rights."`" + cli_printMessage "$(caller)" "AsToKnowMoreLine" + + fi + + done + + # Execute action passed to centos-art.sh script. + eval $FUNCNAM + +}