| #!/bin/bash |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| function cli_exportFunctions { |
| |
| |
| local EXPORTID="$1" |
| |
| |
| |
| if [[ ! $EXPORTID ]] || [[ $EXPORTID == '' ]];then |
| cli_printMessage "`gettext "The export id must be passed as first argument."`" --as-error-line |
| elif [[ ! $EXPORTID =~ '^[A-Z][[:alpha:]]+(/[[:alpha:]_]+)+$' ]];then |
| cli_printMessage "`gettext "The export id doesn't match its pattern."`" --as-error-line |
| fi |
| |
| # Define the source location where function files are placed in. |
| local LOCATION=${CLI_BASEDIR}/Functions/$(dirname ${EXPORTID}) |
| |
| # Define suffix used to retrieve function files. |
| local SUFFIX=$(basename "$EXPORTID") |
| |
| # Verify the suffix value used to retrieve function files. |
| # Assuming no suffix value is passed as second argument to this |
| # function, use the function name value (CLI_FUNCNAME) as default |
| # value. |
| if [[ $SUFFIX == '' ]];then |
| SUFFIX="${CLI_FUNCNAME}" |
| fi |
| |
| # Redefine suffix to match all related function files inside the |
| # related function directory. |
| SUFFIX=${SUFFIX}'[[:alpha:]_]*' |
| |
| # Define the pattern used to retrieve function names from function |
| # files. |
| local PATTERN="^function[[:space:]]+${SUFFIX}[[:space:]]+{[[:space:]]*$" |
| |
| # Define the list of files. |
| local FUNCFILE='' |
| local FUNCFILES=$(cli_getFilesList ${LOCATION} --pattern="${LOCATION}/${SUFFIX}\.sh$" \ |
| --maxdepth='1' --mindepth='1' --type='f') |
| |
| # 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 |
| |
| if [[ $FUNCFILES == '' ]];then |
| cli_printMessage "${FUNCNAME}: `gettext "No function file was found."`" --as-error-line |
| fi |
| |
| |
| for FUNCFILE in $FUNCFILES;do |
| |
| |
| cli_checkFiles -x ${FUNCFILE} |
| |
| |
| |
| |
| declare -F | gawk '{ print $3 }' | egrep "^${FUNCFILE}$" > /dev/null |
| if [[ $? -eq 0 ]];then |
| continue |
| fi |
| |
| |
| . ${FUNCFILE} |
| |
| |
| |
| export -f $(egrep "${PATTERN}" ${FUNCFILE} | gawk '{ print $2 }') |
| |
| done |
| |
| } |