Blame Manual/repository-html/repository_68.html

34051a
34051a
<html>
d1db00
d1db00
organization, and administration of CentOS Artwork Repository.
d1db00
d1db00
Copyright C 2009-2011 Alain Reguera Delgado
34051a
34051a
Permission is granted to copy, distribute and/or modify this document
34051a
under the terms of the GNU Free Documentation License, Version 1.2 or
34051a
any later version published by the Free Software Foundation; with no
34051a
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
34051a
copy of the license is included in the section entitled GNU Free
34051a
Documentation License.  
34051a
-->
949b9b
34051a
34051a
Written by: Lionel Cons <Lionel.Cons@cern.ch> (original author)
34051a
            Karl Berry  <karl@freefriends.org>
34051a
            Olaf Bachmann <obachman@mathematik.uni-kl.de>
34051a
            and many others.
34051a
Maintained by: Many creative people <dev@texi2html.cvshome.org>
34051a
Send bugs and suggestions to <users@texi2html.cvshome.org>
34051a
34051a
-->
34051a
<head>
06d106
<title>CentOS Artwork Repository: 2.64 The trunk/Scripts/Bash/Cli/Functions Directory</title>
34051a
06d106
<meta name="description" content="CentOS Artwork Repository: 2.64 The trunk/Scripts/Bash/Cli/Functions Directory">
06d106
<meta name="keywords" content="CentOS Artwork Repository: 2.64 The trunk/Scripts/Bash/Cli/Functions Directory">
34051a
<meta name="resource-type" content="document">
34051a
<meta name="distribution" content="global">
34051a
<meta name="Generator" content="texi2html 1.76">
34051a
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
34051a
<style type="text/css">
34051a
34051a
@import "/home/centos/artwork/trunk/Identity/Models/Css/Texi2html/common.css";
34051a
34051a
a.summary-letter {text-decoration: none}
34051a
pre.display {font-family: serif}
34051a
pre.format {font-family: serif}
34051a
pre.menu-comment {font-family: serif}
34051a
pre.menu-preformatted {font-family: serif}
34051a
pre.smalldisplay {font-family: serif; font-size: smaller}
34051a
pre.smallexample {font-size: smaller}
34051a
pre.smallformat {font-family: serif; font-size: smaller}
34051a
pre.smalllisp {font-size: smaller}
34051a
span.sansserif {font-family:sans-serif; font-weight:normal;}
34051a
ul.toc {list-style: none}
34051a
-->
34051a
</style>
34051a
34051a
34051a
</head>
34051a
34051a
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
34051a
34051a
06d106
[ < ]
06d106
[ > ]
34051a
   
671838
[ << ]
632e8b
[ Up ]
06d106
[ >> ]
34051a
   
34051a
   
34051a
   
34051a
   
34051a
[Top]
34051a
[Contents]
06d106
[Index]
34051a
[ ? ]
34051a
06d106
06d106
06d106

2.64 The <tt>`trunk/Scripts/Bash/Cli/Functions'</tt> Directory

06d106
06d106
06d106
06d106

2.64.1 Goals

06d106
06d106

The <tt>`trunk/Scripts/Bash/Functions'</tt> directory exists to organize

06d106
<tt>`centos-art.sh'</tt> specific functionalities.
06d106

06d106
06d106
06d106

2.64.2 Description

06d106
06d106

The specific functions of <tt>`centos-art.sh'</tt> script are designed

06d106
with "Software Toolbox" philosophy (see (coreutils.info)Toolbox introduction) in mind: each program "should do one
06d106
thing well".  Inside <tt>`centos-art.sh'</tt> script, each specific
06d106
functionality is considered a program that should do one thing well.
06d106
Of course, if you find that they still don't do it, feel free to
06d106
improve them in order for them to do so.
06d106

06d106

The specific functions of <tt>`centos-art.sh'</tt> script are organized

06d106
inside specific directories under <tt>`trunk/Scripts/Bash/Functions'</tt>
06d106
location. Each specific function directory should be named as the
06d106
function it represents, with the first letter in uppercase. For
06d106
example, if the function name is render, the specific function
06d106
directory for it would be <samp>`trunk/Scripts/Bash/Functions/Render'</samp>.
06d106

06d106

To better understand how specific functions of <tt>`centos-art.sh'</tt>

06d106
script are designed, lets create one function which only goal is to
06d106
output different kind of greetings to your screen.
06d106

06d106

When we create specific functions for <tt>`centos-art.sh'</tt> script it

06d106
is crucial to know what these functions will do exactly and if there
06d106
is any function that already does what we intend to do. If there is no
06d106
one, it is good time to create them then. Otherwise, if
06d106
functionalities already available don't do what you exactly expect,
06d106
contact their authors and work together to improve them.
06d106

06d106
Info

Tip

Join CentOS developers mailing list

06d106
centos-art@centos.org to share your ideas.
06d106

06d106
06d106

It is also worth to know what global functions and variables do we

06d106
have available inside <tt>`centos-art.sh'</tt> script, so advantage can be
06d106
taken from them. Global variables are defined inside global function
06d106
scripts. Global functions scripts are stored immediatly under
06d106
<tt>`trunk/Scripts/Bash/Functions'</tt> directory, in files begining with
06d106
<samp>`cli'</samp> prefix.
06d106

06d106

OK, let's begin with our functionality example.

06d106

06d106

What function name do we use? Well, lets use greet. Note that

06d106
<samp>`hello'</samp> word is not a verb; but an expression, a kind of
06d106
greeting, an interjection specifically. In contrast, <samp>`greet'</samp> is a
06d106
verb and describes what we do when we say <samp>`Hello!'</samp>, <samp>`Hi!'</samp>,
06d106
and similar expressions.
06d106

06d106

So far, we've gathered the following function information:

06d106

06d106
Name: greet
06d106
Path: trunk/Scripts/Bash/Functions/Greet
06d106
File: trunk/Scripts/Bash/Functions/Greet/greet.sh
06d106
06d106

The <tt>`greet.sh'</tt> function script is the first file

06d106
<tt>`centos-art.sh'</tt> script loads when the <samp>`greet'</samp> functionality
06d106
is called using commands like <samp>`centos-art greet --hello='World''</samp>.
06d106
The <tt>`greet.sh'</tt> function script contains the greet function
06d106
definition. 
06d106

06d106

Inside <tt>`centos-art.sh'</tt> script, as convenction, each function

06d106
script has one top commentary, followed by one blank line, and then
06d106
one function defintion below it only.
06d106

06d106

Inside <tt>`centos-art.sh'</tt> script functions, top commentaries have

06d106
the following components: the functionality description, one-line for
06d106
copyright note with your personal information,  the license under
06d106
which the function source code is released --the <tt>`centos-art.sh'</tt>
06d106
script is released as GPL, so do all its functions--, the $Id$
06d106
keyword of Subversion is later expanded by svn propset
06d106
command.
06d106

06d106

In our greet function example, top commentary for

06d106
<tt>`greet.sh'</tt> function script would look like the following:
06d106

06d106
#!/bin/bash
06d106
#
06d106
# greet.sh -- This function outputs different kind of greetings to
06d106
# your screen. Use this function to understand how centos-art.sh
06d106
# script specific functionalities work.
06d106
#
06d106
# Copyright (C) YEAR YOURFULLNAME
06d106
#
06d106
# This program is free software; you can redistribute it and/or modify
06d106
# it under the terms of the GNU General Public License as published by
06d106
# the Free Software Foundation; either version 2 of the License, or
06d106
# (at your option) any later version.
06d106
# 
06d106
# This program is distributed in the hope that it will be useful, but
06d106
# WITHOUT ANY WARRANTY; without even the implied warranty of
06d106
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
06d106
# General Public License for more details.
06d106
#
06d106
# You should have received a copy of the GNU General Public License
06d106
# along with this program; if not, write to the Free Software
06d106
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
06d106
# USA.
06d106
# 
06d106
# ----------------------------------------------------------------------
06d106
# $Id$
06d106
# ----------------------------------------------------------------------
06d106
06d106

After top commentary, separated by one blank line, the greet

06d106
function definition would look like the following:
06d106

06d106
function greet {
06d106
06d106
    # Define global variables.
06d106
06d106
    # Define command-line interface.
06d106
    greet_getActions
06d106
06d106
}
06d106
06d106

The first definition inside greet function, are global

06d106
variables that will be available along greet function execution
06d106
environment. This time we didn't use global variable definitions for
06d106
greet function execution environment, so we left that section
06d106
empty.
06d106

06d106

Later, we call greet_getActions function to define the

06d106
command-line interface of greet functionality. The command-line
06d106
interface of greet functionality defines what and how actions
06d106
are performed, based on arguments combination passed to
06d106
<tt>`centos-art.sh'</tt> script.
06d106

06d106
function greet_getActions {
06d106
06d106
    case "$ACTIONNAM" in
06d106
06d106
        --hello )
06d106
            greet_doHello
06d106
            ;;
06d106
06d106
        --bye )
06d106
            greet_doBye
06d106
            ;;
06d106
06d106
        * )
06d106
            cli_printMessage "`gettext "The option provided is not valid."`"
06d106
            cli_printMessage "$(caller)" 'AsToKnowMoreLine'
06d106
06d106
    esac
06d106
06d106
}
06d106
06d106

The ACTIONNAM global variable is defined in <tt>`cli.sh'</tt>

06d106
function script and contains the value passed before the equal sign
06d106
(i.e., <samp>`='</samp>) in the second command-line argument of
06d106
<tt>`centos-art.sh'</tt> script. For example, if the second command-line
06d106
argument is <samp>`--hello='World''</samp>, the value of ACTIONNAM
06d106
variable would be <samp>`--hello'</samp>.  Using this configuration let us
06d106
deside which action to perform based on the action name passed to
06d106
<tt>`centos-art.sh'</tt> script as second argument. 
06d106

06d106

The greet function definition makes available two valid

06d106
greetings through <samp>`--hello'</samp> and <samp>`--bye'</samp> options.  If no
06d106
one of them is provided as second command-line argument, the <samp>`*'</samp>
06d106
case is evaluated instead. 
06d106

06d106

The <samp>`*'</samp> case and its two lines further on should always be

06d106
present in <tt>`_getActions.sh'</tt> function scripts, no matter what
06d106
specific functionality you are creating. This convenction helps the
06d106
user to find out documentation about current functionality in use,
06d106
when no valid action is provided.
06d106

06d106

The greet_doHello and greet_doBye function definitions

06d106
are the core of greet specific functionality.  In such function
06d106
definitions we set what our greet function really does: to
06d106
output different kinds of greetings.
06d106

06d106
function greet_doHello {
06d106
06d106
    cli_printMessage "`gettext "Hello"` $ACTIONVAL"
06d106
06d106
}
06d106
06d106

The greet_doHello function definition is stored in

06d106
<tt>`greet_doHello.sh'</tt> function script. 
06d106

06d106
function greet_doBye {
06d106
06d106
    cli_printMessage "`gettext "Goodbye"` $ACTIONVAL"
06d106
06d106
}
06d106
06d106

The greet_doBye function definition is stored in the

06d106
<tt>`greet_doBye.sh'</tt> function script. 
06d106

06d106

Both <tt>`greet_doHello.sh'</tt> and <tt>`greet_doBye.sh'</tt> function

06d106
scripts are stored inside greet function directory path (i.e.
06d106
<tt>`trunk/Scripts/Bash/Functions/Greet'</tt>).
06d106

06d106

The ACTIONVAL global variable is defined in <tt>`cli.sh'</tt>

06d106
function script and contains the value passed after the equal sign
06d106
(i.e., <samp>`='</samp>) in the second command-line argument of
06d106
<tt>`centos-art.sh'</tt> script. For example, if the second command-line
06d106
argument is <samp>`--hello='World''</samp>, the value of ACTIONVAL
06d106
variable would be <samp>`World'</samp> without quotes.
06d106

06d106

Let's see how greet specific functionality files are organzied

06d106
under greet function directory. To see file organization we use
06d106
the tree command:
06d106

06d106
trunk/Scripts/Bash/Functions/Greet
06d106
|-- greet_doBye.sh
06d106
|-- greet_doHello.sh
06d106
|-- greet_getActions.sh
06d106
`-- greet.sh
06d106
06d106

To try the greet specific functionality we've just created,

06d106
pass the function name (i.e., <samp>`greet'</samp>) as first argument to
06d106
<tt>`centos-art.sh'</tt> script, and any of the valid options as second
06d106
argument. Some examples are illustrated below:
06d106

06d106
[centos@projects ~]$ centos-art greet --hello='World'
06d106
Hello World
06d106
[centos@projects ~]$ centos-art greet --bye='World'
06d106
Goodbye World
06d106
[centos@projects ~]$ 
06d106
06d106

The word <samp>`World'</samp> in the examples above can be anything. In fact,

06d106
change it to have a little fun.
06d106

06d106

Now that we have a specific function that works as we expect, it is

06d106
time to document it.  To document greet specific functionality,
06d106
we use its directory path and the manual functionality
06d106
(-- Removed(pxref:trunk Scripts Bash Functions Manual) --) of <tt>`centos-art.sh'</tt>
06d106
script, just as the following command illustrates: 
06d106

06d106
centos-art manual --edit=trunk/Scripts/Bash/Functions/Greet
06d106
06d106

To have a well documented function helps user to understand how your

06d106
function really works, and how it should be used.  When no valid
06d106
action is passed to a function, the <tt>`centos-art.sh'</tt> script uses
06d106
the function documentation entry as vehicle to communicate which the
06d106
valid functions are. When no documentation entry exists for a
06d106
function, the <tt>`centos-art.sh'</tt> script informs that no
06d106
documentation entry exists for such function and requests user to
06d106
create it right at that time.
06d106

06d106

Now that we have documented our function, it is time to translate its

06d106
output messages to different languages. To translate specific
06d106
functionality output messages to different languages we use the
06d106
locale functionality (-- Removed(pxref:trunk Scripts Bash Functions
06d106
Locale) --) of <tt>`centos-art.sh'</tt> script, just as the following command
06d106
illustrates:
06d106

06d106
centos-art locale --edit
06d106
06d106
Warning

Warning

To translate output messages in different languages,

06d106
your system locale information --as in LANG environment
06d106
variable-- must be set to that locale you want to produce translated
06d106
messages for. For example, if you want to produce translated messages
06d106
for Spanish language, your system locale information must be set to
06d106
<samp>`es_ES.UTF-8'</samp>, or similar, first.
06d106

06d106
06d106

Well, it seems that our example is rather complete by now.

06d106

06d106

In greet function example we've described so far, we only use

06d106
cli_printMessage global function in action specific function
06d106
definitions in order to print messages, but more interesting things
06d106
can be achieved inside action specific function definitions.  For
06d106
example, if you pass a directory path as action value in second
06d106
argument, you could retrive a list of files from therein, and process
06d106
them. If the list of files turns too long or you just want to control
06d106
which files to process, you could add the third argument in the form
06d106
<samp>`--filter='regex''</samp> and reduce the amount of files to process
06d106
using a regular expression pattern.
06d106

06d106

The greet function described in this section may serve you as

06d106
an introduction to understand how specific functionalities work inside
06d106
<tt>`centos-art.sh'</tt> script. With some of luck this introduction will
06d106
also serve you as motivation to create your own <tt>`centos-art.sh'</tt>
06d106
script specific functionalities.
06d106

06d106

By the way, the greet functionality doesn't exist inside

06d106
<tt>`centos-art.sh'</tt> script yet. Would you like to create it?
06d106

06d106
995423
06d106

2.64.3 Usage

632e8b
632e8b
995423
06d106

2.64.3.1 Global variables

06d106
06d106

The following global variables of <tt>`centos-art.sh'</tt> script, are

06d106
available for you to use inside specific functions:
06d106

06d106
06d106
<u>Variable:</u> TEXTDOMAIN
06d106
06d106
06d106

Default domain used to retrieve translated messages. This value is set

06d106
in <tt>`initFunctions.sh'</tt> and shouldn't be changed.
06d106

06d106
06d106
06d106
<u>Variable:</u> TEXTDOMAINDIR
06d106
06d106
06d106

Default directory used to retrieve translated messages. This value is

06d106
set in <tt>`initFunctions.sh'</tt> and shouldn't be changed.
06d106

06d106
06d106
06d106
<u>Variable:</u> FUNCNAM
06d106
06d106
06d106

Define function name.

06d106

06d106

Function names associate sets of actions. There is one set of actions

06d106
for each unique function name inside <tt>`centos-art.sh'</tt> script.
06d106

06d106

Dunction names are passed as first argument in <tt>`centos-art.sh'</tt>

06d106
command-line interface. For example, in the command <samp>`centos-art
06d106
render --entry=path/to/dir --filter=regex'</samp>, the ACTION passed to
06d106
<tt>`centos-art.sh'</tt> script is <samp>`render'</samp>.
06d106

06d106

When first argument is not provided, the <tt>`centos-art.sh'</tt> script

06d106
immediatly ends its execution.
06d106

06d106
06d106
06d106
<u>Variable:</u> FUNCDIR
06d106
06d106
06d106
06d106
06d106
06d106
<u>Variable:</u> FUNCDIRNAME
06d106
06d106
06d106
06d106
06d106
06d106
<u>Variable:</u> FUNCSCRIPT
06d106
06d106
06d106
632e8b
06d106
06d106
<u>Variable:</u> FUNCCONFIG
06d106
06d106
06d106
06d106
06d106
06d106
<u>Variable:</u> ACTIONNAM
06d106
06d106
06d106

Define action name.

06d106

06d106

Each action name identifies an specific action to perform, inside an

06d106
specific function.
06d106

06d106

Action name names aare passed as second argument in

06d106
<tt>`centos-art.sh'</tt> command-line interface. For example, in the
06d106
command <samp>`centos-art render --entry=path/to/dir --filter=regex'</samp>,
06d106
the ACTIONNAM passed to <tt>`centos-art.sh'</tt> script is
06d106
<samp>`--entry'</samp>.
06d106

06d106

When second argument is not provided, the <tt>`centos-art.sh'</tt> script

06d106
immediatly ends its execution.
06d106

06d106
06d106
06d106
<u>Variable:</u> ACTIONVAL
06d106
06d106
06d106

Define action value.

06d106

06d106

Action values are associated to just one action name. Action values

06d106
contain the working copy entry over which its associated action will be
06d106
performed in.  Working copy entries can be files or directories inside
06d106
the working copy.
06d106

06d106
06d106
06d106
<u>Variable:</u> REGEX
06d106
06d106
06d106

Define regular expression used as pattern to build the list of files

06d106
to process.
06d106

06d106

By default, REGEX variable is set to .+ to match all

06d106
files.
06d106

06d106

Functions that need to build a list of files to process use the option

06d106
<samp>`--filter'</samp> to redefine REGEX variable default value, and
06d106
so, control the amount of files to process.
06d106

06d106
06d106
06d106
<u>Variable:</u> ARGUMENTS
06d106
06d106
06d106

Define optional arguments.

06d106

06d106

Optional arguments, inside <tt>`centos-art.sh'</tt> script, are considered

06d106
as all command-line arguments passed to <tt>`centos-art.sh'</tt> script,
06d106
from third argument position on. For example, in the command
06d106
<samp>`centos-art render --entry=path/to/dir --filter=regex'</samp> , the
06d106
optional arguments are from <samp>`--filter=regex'</samp> argument on.
06d106

06d106

Optional arguments are parsed using getopt command through

06d106
the following base construction: 
06d106

06d106
# Define short options we want to support.
06d106
local ARGSS=""
06d106
06d106
# Define long options we want to support.
06d106
local ARGSL="filter:,to:"
06d106
06d106
# Parse arguments using getopt(1) command parser.
06d106
cli_doParseArguments
06d106
06d106
# Reset positional parameters using output from (getopt) argument
06d106
# parser.
06d106
eval set -- "$ARGUMENTS"
06d106
06d106
# Define action to take for each option passed.
06d106
while true; do
06d106
    case "$1" in
06d106
        --filter )
06d106
            REGEX="$2" 
06d106
            shift 2
06d106
            ;;
06d106
        --to )
06d106
            TARGET="$2" 
06d106
            shift 2
06d106
            ;;
06d106
        * )
06d106
            break
06d106
    esac
06d106
done
06d106
06d106

Optional arguments provide support to command options inside

06d106
<tt>`centos-art.sh'</tt> script. For instance, consider the Subversion
06d106
(svn) command, where there are many options (e.g.,
06d106
<samp>`copy'</samp>, <samp>`delete'</samp>, <samp>`move'</samp>, etc), and inside each
06d106
option there are several modifiers (e.g., <samp>`--revision'</samp>,
06d106
<samp>`--message'</samp>, <samp>`--username'</samp>, etc.) that can be combined one
06d106
another in their short or long variants. 
06d106

06d106

The ARGUMENTS variable is used to store arguments passed from

06d106
command-line for later use inside <tt>`centos-art.sh'</tt> script. Storing
06d106
arguments is specially useful when we want to run a command with some
06d106
specific options from them. Consider the following command:
06d106

06d106
centos-art path --copy=SOURCE --to=TARGET --message="The commit message goes here." --username='johndoe'
06d106
06d106

In the above command, the <samp>`--message'</samp>, and <samp>`--username'</samp>

06d106
options are specific to svn copy command. In such cases,
06d106
options are not interpreted by <tt>`centos-art.sh'</tt> script itself.
06d106
Instead, the <tt>`centos-art.sh'</tt> script uses getopt to
06d106
retrive them and store them in the ARGUMENTS variable for later
06d106
use, as described in the following command:
06d106

06d106
# Build subversion command to duplicate locations inside the
06d106
# workstation.
06d106
eval svn copy $SOURCE $TARGET --quiet $ARGUMENTS
06d106
06d106

When getopt parses ARGUMENTS, we may use short options

06d106
(e.g., <samp>`-m'</samp>) or long options (e.g., <samp>`--message'</samp>). When
06d106
we use short options, arguments are separated by one space from the
06d106
option (e.g., <samp>`-m 'This is a commit message.''</samp>).  When we use
06d106
long options arguments are separated by an equal sign (<samp>`='</samp>)
06d106
(e.g., <samp>`--message='This is a commit message''</samp>).
06d106

06d106

In order for getopt to parse ARGUMENTS correctly, it

06d106
is required to provide the short and long definition of options that
06d106
will be passed or at least supported by the command performing the
06d106
final action the function script exists for.
06d106

06d106

As convenction, inside <tt>`centos-art.sh'</tt> script, short option

06d106
definitions are set in the ARGSS variable; and long option
06d106
definitions are set in the ARGSL variable.
06d106

06d106

When you define short and long options, it may be needed to define

06d106
which of these option arguments are required and which not. To define
06d106
an option argument as required, you need to set one colon <samp>`:'</samp>
06d106
after the option definition (e.g., <samp>`-o m: -l message:'</samp>).  On
06d106
the other hand, to define an option argument as not required, you need
06d106
to set two colons <samp>`::'</samp> after the option definition (e.g.,
06d106
<samp>`-o m:: -l message::'</samp>).
06d106

06d106
06d106
06d106
<u>Variable:</u> EDITOR
06d106
06d106
06d106

Default text editor.

06d106

06d106

The <tt>`centos-art.sh'</tt> script uses default text EDITOR to edit

06d106
pre-commit subversion messages, translation files, configuration
06d106
files, script files, and similar text-based files.
06d106

06d106

If EDITOR environment variable is not set, <tt>`centos-art.sh'</tt>

06d106
script uses <tt>`/usr/bin/vim'</tt> as default text editor. Otherwise, the
06d106
following values are recognized by <tt>`centos-art.sh'</tt> script:
06d106

632e8b
    06d106
  • <tt>`/usr/bin/vim'</tt>
  • 06d106
  • <tt>`/usr/bin/emacs'</tt>
  • 06d106
  • <tt>`/usr/bin/nano'</tt>
  • 632e8b
    632e8b
    06d106

    If no one of these values is set in EDITOR environment variable,

    06d106
    <tt>`centos-art.sh'</tt> uses <tt>`/usr/bin/vim'</tt> text editor by default. 
    06d106

    06d106
    632e8b
    995423
    06d106

    2.64.3.2 Global functions

    632e8b
    06d106

    Function scripts stored directly under

    06d106
    <tt>`trunk/Scripts/Bash/Functions/'</tt> directory are used to define
    06d106
    global functions.  Global functions can be used inside action specific
    06d106
    functionalities and or even be reused inside themselves. This section
    06d106
    provides introductory information to global functions you can use
    06d106
    inside <tt>`centos-art.sh'</tt> script.
    06d106

    06d106
    06d106
    <u>Function:</u> cli_checkActionArguments
    06d106
    06d106
    06d106

    Validate action value (ACTIONVAL) variable.

    06d106

    06d106

    The action value variable can take one of the following values:

    06d106

    06d106
      06d106
    1. Path to one directory inside the local working copy,
    2. 06d106
    3. Path to one file inside the local working copy,
    4. 06d106
      06d106
      06d106

      If another value different from that specified above is passed to

      06d106
      action value variable, the <tt>`centos-art.sh'</tt> script prints an error
      06d106
      message and ends script execution.
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_checkFiles FILE [TYPE]
      06d106
      06d106
      06d106

      Verify file existence.

      06d106

      06d106

      cli_checkFiles receives a FILE absolute path and performs

      06d106
      file verification as specified in TYPE.  When TYPE is not
      06d106
      specified, cli_checkFiles verifies FILE existence, no
      06d106
      matter what kind of file it be.  If TYPE is specified, use one
      06d106
      of the following values:
      06d106

      06d106
      06d106
      <samp>`d'</samp>
      06d106
      <samp>`directory'</samp>
      06d106

      Ends script execution if FILE is not a directory.

      06d106

      06d106

      When you verify directories with cli_checkFiles, if directory doesn't

      06d106
      exist, <tt>`centos-art.sh'</tt> script asks you for confirmation in order
      06d106
      to create that directory. If you answer positively,
      06d106
      <tt>`centos-art.sh'</tt> script creates that directory and continues
      06d106
      script flows normally. Otherwise, if you answer negatively,
      06d106
      <tt>`centos-art.sh'</tt> ends script execution with an error and
      06d106
      documentation message.
      06d106

      06d106
      06d106
      <samp>`f'</samp>
      06d106
      <samp>`regular-file'</samp>
      06d106

      Ends script execution if FILE is not a regular file.

      06d106

      06d106
      <samp>`h'</samp>
      06d106
      <samp>`symbolic-link'</samp>
      06d106

      Ends script execution if FILE is not a symbolic link.

      06d106

      06d106
      <samp>`x'</samp>
      06d106
      <samp>`execution'</samp>
      06d106

      Ends script execution if FILE is not executable.

      06d106

      06d106
      <samp>`fh'</samp>
      06d106

      Ends script execution if FILE is neither a regular file nor a

      06d106
      symbolic link.
      06d106

      06d106
      <samp>`fd'</samp>
      06d106

      Ends script execution if FILE is neither a regular file nor a

      06d106
      directory.
      06d106

      06d106
      <samp>`isInWorkingCopy'</samp>
      06d106

      Ends script execution if FILE is not inside the working copy.

      06d106

      06d106
      06d106
      06d106

      As default behaviour, if FILE passes all verifications,

      06d106
      <tt>`centos-art.sh'</tt> script continues with its normal flow. 
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_commitRepoChanges [LOCATION]
      06d106
      06d106
      06d106

      Syncronize changes between repository and working copy.

      06d106

      06d106

      The cli_commitRepoChanges function brings changes from the

      06d106
      central repository down to the working copy--using svn
      06d106
      update--, checks the working copy changes--using svn
      06d106
      status command--, prints status report--using both svn
      06d106
      update and svn status commands output, and finally, commits
      06d106
      recent changes from the working copy up to the repository--using
      06d106
      svn commit command--.
      06d106

      06d106

      Previous to commit the working copy changes up to the central

      06d106
      repository, the cli_commitRepoChanges function asks you to
      06d106
      verify changes--using svn diff command--, and later,
      06d106
      another confirmation question is shown to be sure you really want to
      06d106
      commit changes up to central repository.
      06d106

      06d106

      If LOCATION argument is not specified, the value of

      06d106
      ACTIONVAL variable is used as reference instead.
      06d106

      06d106
      06d106
      ----------------------------------------------------------------------
      06d106
      --> Bringing changes from the repository into the working copy
      06d106
      --> Checking changes in the working copy
      06d106
      ----------------------------------------------------------------------
      06d106
      Added           0 file from the repository.
      06d106
      Deleted         0 file from the repository.
      06d106
      Updated         0 file from the repository.
      06d106
      Conflicted      0 file from the repository.
      06d106
      Merged          0 file from the repository.
      06d106
      Modified        4 files from the working copy.
      06d106
      Unversioned     0 file from the working copy.
      06d106
      Deleted         0 file from the working copy.
      06d106
      Added           0 file from the working copy.
      06d106
      ----------------------------------------------------------------------
      06d106
      06d106

      Figure 2.3: The cli_commitRepoChanges function output.

      06d106
      06d106

      06d106

      Call the cli_commitRepoChanges function before or/and after

      06d106
      calling functions that modify files or directories inside the working
      06d106
      copy as you may need to.  
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_doParseArguments
      06d106
      06d106
      06d106

      Redefine arguments (ARGUMENTS) global variable using

      06d106
      getopt command output. For more information about how to use
      06d106
      cli_doParseArguments function, see ARGUMENTS variable
      06d106
      description above.
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_doParseArgumentsReDef $@
      06d106
      06d106
      06d106

      Initialize/reset arguments (ARGUMENTS) global variable using

      06d106
      positional parameters variable ($@) as reference.
      06d106

      06d106

      When we work inside function definitions, positional parameters are

      06d106
      reset to the last function definition positional parameters.  If you
      06d106
      need to redefine positional parameters from one specific function, you
      06d106
      need to call cli_doParseArgumentsReDef with the positional
      06d106
      parameters variable ($@), set as first argument, to that
      06d106
      specific function you want to redefine positional parameters at.
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_getArguments
      06d106
      06d106
      06d106

      Initialize function name (FUNCNAM), action name

      06d106
      (ACTIONNAM), and action value (ACTIONVAL) global
      06d106
      variables, using positional parameters passed in $@ variable.
      06d106

      06d106

      The cli_getArguments function is called from cli.sh

      06d106
      function script, using cli function positional parameters
      06d106
      (i.e., the positional parameters passed as arguments in the
      06d106
      command-line) as first function argument. 
      06d106

      06d106

      Once command-line positional parameters are accesible to

      06d106
      <tt>`centos-art.sh'</tt> script execution evironment,
      06d106
      cli_getArguments uses regular expression to retrive
      06d106
      action variables from first and second argument. The first argument
      06d106
      defines the value used as function name (FUNCNAM), and the
      06d106
      second argument defines both values used as action name
      06d106
      (ACTIONNAM) and action value (ACTIONVAL), respectively.
      06d106

      06d106

      The first argument is a word in lower case. This word specifies the

      06d106
      name of the functionality you want to use (e.g., <samp>`render'</samp> to
      06d106
      render images, <samp>`manual'</samp> to work on documentation, and so on.)
      06d106

      06d106

      The second argument has a long option style (e.g.,

      06d106
      <samp>`--option=value'</samp>). The <samp>`--option'</samp> represents the action name
      06d106
      (ACTIONNAM), and the characters inbetween the equal sign
      06d106
      (<samp>`='</samp>) and the first space character, are considered as the action
      06d106
      value (ACTIONVAL). In order to provide action values with space
      06d106
      characters inbetween you need to enclose action value with quotes like
      06d106
      in <samp>`--option='This is long value with spaces inbetween''</samp>.
      06d106
      Generally, action values are used to specify paths over which the
      06d106
      action name acts on.
      06d106

      06d106

      Once action related variables (i.e., FUNCNAM, ACTIONNAM,

      06d106
      and ACTIONVAL) are defined and validated,
      06d106
      cli_getArguments shifts the positional arguments to remove the
      06d106
      first two arguments passed (i.e., those used to retrive action related
      06d106
      variables) and redefine the arguments (ARGUMENTS) global
      06d106
      variable with the new positional parameters information.
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_getFunctions
      06d106
      06d106
      06d106

      Initialize funtionalities supported by <tt>`centos-art.sh'</tt> script.

      06d106

      06d106

      Functionalities supported by <tt>`centos-art.sh'</tt> script are organized

      06d106
      in functionality directories under
      06d106
      <tt>`trunk/Scripts/Bash/Functions/'</tt> directory. Each functionality
      06d106
      directory stores function scripts to the functionality such directory
      06d106
      was created for. Function scripts contain function definitions.
      06d106
      Function definitions contain several commands focused on achieving one
      06d106
      specific task only (i.e., the one such functionality was created for).
      06d106

      06d106

      In order for <tt>`centos-art.sh'</tt> script to recognize a functionality,

      06d106
      such functionality needs to be stored under
      06d106
      <tt>`trunk/Scripts/Bash/Functions/'</tt> in a directory written
      06d106
      capitalized (i.e., the whole name is written in lowercase except the
      06d106
      first character which is in uppercase). The directory where one
      06d106
      specific functionality is stored is known as the <samp>`functionality
      06d106
      directory'</samp>. 
      06d106

      06d106

      Inside each functionality directory, the functionalty itself is

      06d106
      implemented through function scripts. Function scripts are organized
      06d106
      in files independently one another and written in <samp>`camelCase'</samp>
      06d106
      format with the function name as prefix.  Separation between prefix
      06d106
      and description is done using underscore (<samp>`_'</samp>) character.
      06d106

      06d106

      In order for <tt>`centos-art.sh'</tt> script to load functionalities

      06d106
      correctly, function definition inside function scripts should be set
      06d106
      using the <samp>`function'</samp> reserved word, just as in the following
      06d106
      example:
      06d106

      06d106
      function prefix_doSomething {
      06d106
      06d106
          # Do something here...
      06d106
      06d106
      }
      06d106
      06d106

      The above function definition is just a convenction we use, in order

      06d106
      to make identification of function names easier read and automate by
      06d106
      <tt>`centos-art.sh'</tt> script initialization commands, once
      06d106
      <tt>`centos-art.sh'</tt> script determines which functionality directory
      06d106
      to use.  Specifically, in order to initialize and export functions,
      06d106
      <tt>`centos-art.sh'</tt> script executes all function scripts inside the
      06d106
      functionality directory, and later grep on them using a
      06d106
      regular expression pattern, where the <samp>`function'</samp> reserved word is
      06d106
      used as reference to retrive the function names and export them to
      06d106
      <tt>`centos-art.sh'</tt> script execution environment, and so, make
      06d106
      function definitions --from function scripts inside the functionality
      06d106
      directory-- available for further calls.
      06d106

      06d106

      If the functionality specified in the command-line first argument

      06d106
      doesn't have a functionality directory, <tt>`centos-art.sh'</tt> script
      06d106
      considers the functionality provided in the command-line as invalid
      06d106
      functionality and immediatly stops script execution with an error
      06d106
      message.
      06d106

      06d106

      In order to keep visual consistency among function scripts, please

      06d106
      consider using the following function script design model as template
      06d106
      for your own function scripts:
      06d106

      06d106
      #!/bin/bash
      06d106
      #
      06d106
      # prefix_doSomething.sh -- This function illustrates function scripts
      06d106
      # design model you can use to create your own function scripts inside
      06d106
      # centos-art.sh script.
      06d106
      #
      06d106
      # Copyright (C) YEAR YOURFULLNAME
      06d106
      #
      06d106
      # This program is free software; you can redistribute it and/or modify
      06d106
      # it under the terms of the GNU General Public License as published by
      06d106
      # the Free Software Foundation; either version 2 of the License, or
      06d106
      # (at your option) any later version.
      06d106
      # 
      06d106
      # This program is distributed in the hope that it will be useful, but
      06d106
      # WITHOUT ANY WARRANTY; without even the implied warranty of
      06d106
      # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      06d106
      # General Public License for more details.
      06d106
      #
      06d106
      # You should have received a copy of the GNU General Public License
      06d106
      # along with this program; if not, write to the Free Software
      06d106
      # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
      06d106
      # USA.
      06d106
      # 
      06d106
      # ----------------------------------------------------------------------
      06d106
      # $Id$
      06d106
      # ----------------------------------------------------------------------
      06d106
      06d106
      function prefix_doSomething {
      06d106
      06d106
          # Do something here...
      06d106
      06d106
      }
      06d106
      06d106
      06d106
      06d106
      <u>Function:</u> cli_getCountryCodes [FILTER]
      06d106
      06d106
      06d106

      Output country codes supported by <tt>`centos-art.sh'</tt> script.

      06d106

      06d106

      The cli_getCountryCodes function outputs a list with country

      06d106
      codes as defined in ISO3166 standard. When FILTER is provided,
      06d106
      cli_getCountryCodes outputs country codes that match
      06d106
      FILTER regular expression pattern.
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_getCountryName [FILTER]
      06d106
      06d106
      06d106

      Outputs country name supported by <tt>`centos-art.sh'</tt> script.

      06d106

      06d106

      The cli_getCountryName function reads one language locale code

      06d106
      in the format LL_CC and outputs the name of its related country as in
      06d106
      ISO3166. If filter is specified, cli_getCountryName returns the
      06d106
      country name that matches the locale code specified in FILTER,
      06d106
      exactly.
      06d106

      06d106
       
      06d106
      06d106
      <u>Function:</u> cli_getCurrentLocale
      06d106
      06d106
      06d106

      Output current locale used by <tt>`centos-art.sh'</tt> script.

      06d106

      06d106

      The cli_getCurrentLocale function uses LANG environment

      06d106
      variable to build a locale pattern that is later applied to
      06d106
      cli_getLocales function output in order to return the current
      06d106
      locale that <tt>`centos-art.sh'</tt> script works with. 
      06d106

      06d106

      The current locale information, returned by

      06d106
      cli_getCurrentLocale, is output from more specific to less
      06d106
      specific. For example, if <samp>`en_GB'</samp> locale exists in
      06d106
      cli_getLocales function output, the <samp>`en_GB'</samp> locale would
      06d106
      take precedence before <samp>`en'</samp> locale.
      06d106

      06d106

      Locale precedence selection is quite important in order to define the

      06d106
      locale type we use for message translations. For example, if
      06d106
      <samp>`en_GB'</samp> is used, we are also saying that the common language
      06d106
      specification for English language (i.e., <samp>`en'</samp>) is no longer
      06d106
      used. Instead, we are using English non-common country-specific
      06d106
      language specifications like <samp>`en_AU'</samp>, <samp>`en_BW'</samp>, <samp>`en_GB'</samp>,
      06d106
      <samp>`en_US'</samp>, etc., for message translations.  
      06d106

      06d106

      Use cli_getCurrentLocale function to know what current locale

      06d106
      information to use inside <tt>`centos-art.sh'</tt> script.
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_getFilesList [LOCATION]
      06d106
      06d106
      06d106

      Output list of files to process.

      06d106

      06d106

      The cli_getFilesList function uses LOCATION variable as

      06d106
      source location to build a list of files just as specified by regular
      06d106
      expression (REGEX) global variable. Essentially, what the
      06d106
      cli_getFilesList function does is using find command
      06d106
      to look for files in the location (LOCATION) just as posix-egrep
      06d106
      regular expression (REGEX) specifies. 
      06d106

      06d106

      If LOCATION is not specified when cli_getFilesList

      06d106
      function is called, the action value (ACTIONVAL) global variable
      06d106
      is used as location value instead.
      06d106

      06d106

      By default, if the regular expression (REGEX) global variable is

      06d106
      not redefined after its first definition in the cli function,
      06d106
      all files that match default regular expression value (i.e.,
      06d106
      <samp>`.+'</samp>) will be added to the list of files to process. Otherwise,
      06d106
      if you redefine the regular expression global variable after its first
      06d106
      definition in the cli function and before calling
      06d106
      cli_getFilesList function, the last value you specifed is used
      06d106
      instead.
      06d106

      06d106

      When you need to customize the regular expression (REGEX) global

      06d106
      variable value inside a function, do not redefine the global variable
      06d106
      (at least you be absolutly convinced you need to).  Instead, set the
      06d106
      regular expression global variable as <samp>`local'</samp> to the function you
      06d106
      need a customized regular expression value for.  If we don't redefine
      06d106
      the regular expression global variable as local to the function, or
      06d106
      use another name for the regular expression variable (which is not
      06d106
      very convenient in order to keep the amount of names to remember low),
      06d106
      you may experiment undesired concantenation issues that make your
      06d106
      regular expression to be something different from that you expect them
      06d106
      to be, specially if the function where you are doing the variable
      06d106
      redefinition is called several times during the same script execution.
      06d106

      06d106

      As result, the cli_getFilesList re-defines the value of

      06d106
      FILES variable with the list of files the find command
      06d106
      returned. As example, consider the following construction:
      06d106

      06d106
      function prefix_doSomething {
      06d106
      06d106
          # Initialize the list of files to process.
      06d106
          local FILES=''
      06d106
      06d106
          # Initialize location.
      06d106
          local LOCATION=/home/centos/artwork/trunk/Identity/Themes/Models/Default
      06d106
      06d106
          # Re-define regular expression to match scalable vector graphic
      06d106
          # files only. Note how we use the global value of REGEX to build a
      06d106
          # new local REGEX value here.
      06d106
          local REGEX="${REGEX}.*\.(svgz|svg)"
      06d106
      06d106
          # Redefine list of files to process.
      06d106
          cli_getFilesList $LOCATION
      06d106
      06d106
          # Process list of files.
      06d106
          for FILE in $FILES;do
      06d106
              cli_printMessages "$FILE" 'AsResponseLine'
      06d106
              # Do something else here on...
      06d106
          done
      06d106
      06d106
      }
      06d106
      06d106
      06d106
      06d106
      06d106
      <u>Function:</u> cli_getLangCodes [FILTER]
      06d106
      06d106
      06d106

      Outputs language codes supported by <tt>`centos-art.sh'</tt> script.

      06d106

      06d106

      cli_getLangCodes function outputs a list of language codes as

      06d106
      defined in ISO639 standard. When FILTER is provided,
      06d106
      cli_getLangCodes outputs language codes that match FILTER
      06d106
      regular expression pattern.
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_getLangName [FILTER]
      06d106
      06d106
      06d106

      Outputs language names supported by <tt>`centos-art.sh'</tt> script.

      06d106

      06d106

      cli_getLangName function reads one language locale code in the

      06d106
      format LL_CC and outputs the language related name as in ISO639. If
      06d106
      filter is specified, cli_getLangName returns the language name
      06d106
      that matches the locale code specified in FILTER, exactly.
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_getLocales
      06d106
      06d106
      06d106

      Output locale codes supported by <tt>`centos-art.sh'</tt> script.

      06d106

      06d106

      Occasionally, you use cli_getLocales function to add locale

      06d106
      information in non-common country-specific language (<samp>`LL_CC'</samp>)
      06d106
      format for those languages (e.g., <samp>`bn_IN'</samp>, <samp>`pt_BR'</samp>, etc.)
      06d106
      which locale differences cannot be solved using common language
      06d106
      specifications (<samp>`LL'</samp>) into one unique common locale specification
      06d106
      (e.g., <samp>`bn'</samp>, <samp>`pt'</samp>, etc.).  
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_getRepoName NAME TYPE
      06d106
      06d106
      06d106

      Sanitate file names.

      06d106

      06d106

      Inside <tt>`centos-art.sh'</tt> script, specific functionalities rely both

      06d106
      in cli_getRepoName and repository file system organization to
      06d106
      achieve their goals.  Consider cli_getRepoName function as
      06d106
      central place to manage file name convenctions for other functions
      06d106
      inside <tt>`centos-art.sh'</tt> script.
      06d106

      06d106
      Important

      Important

      cli_getRepoName function doesn't verify file

      06d106
      or directory existence, for that purpose use cli_checkFiles
      06d106
      function instead.
      06d106

      06d106
      06d106

      The NAME variable contains the file name or directory name you

      06d106
      want to sanitate.
      06d106

      06d106

      The TYPE variable specifies what type of sanitation you want to

      06d106
      perform on NAME. The TYPE can be one of the following
      06d106
      values:
      06d106

      06d106
      06d106
      <samp>`d'</samp>
      06d106
      <samp>`directory'</samp>
      06d106

      Sanitate directory NAMEs.

      06d106

      06d106
      <samp>`f'</samp>
      06d106
      <samp>`regular-file'</samp>
      06d106

      Sanitate regular file NAMEs.

      06d106

      06d106
      06d106
      06d106

      Use cli_getRepoName function to sanitate file names and

      06d106
      directory names before their utilization. 
      06d106

      06d106

      Use cli_getRepoName when you need to change file name

      06d106
      convenctions inside <tt>`centos-art.sh'</tt> script. 
      06d106

      06d106

      When we change file name convenctions inside cli_getRepoName

      06d106
      what we are really changing is the way functions interpret repository
      06d106
      file system organization. Notice that when we change a file name
      06d106
      (e.g., a function name), it is necessary to update all files where
      06d106
      such file name is placed on. This may require a massive substitution
      06d106
      inside the repository, each time we change name convenctions in the
      06d106
      repository (-- Removed(pxref:trunk Scripts Bash Functions Path) --, for more
      06d106
      information).
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_getRepoStatus [LOCATION]
      06d106
      06d106
      06d106

      Request repository status.

      06d106

      06d106

      This function requests the status of a LOCATION inside the

      06d106
      working copy using the svn status command and returns the
      06d106
      first character in the output line, just as described in svn
      06d106
      help status. If LOCATION is not a regular file or a directory,
      06d106
      inside the working copy, the <tt>`centos-art.sh'</tt> script prints a
      06d106
      message and ends its execution.
      06d106

      06d106

      Use this function to perform verifications based a repository

      06d106
      LOCATION status.
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_getTemporalFile NAME
      06d106
      06d106
      06d106

      Output absolute path to temporal file NAME.

      06d106

      06d106

      The cli_getTemporalFile function uses <tt>`/tmp'</tt> directory as

      06d106
      source location to store temporal files, the <tt>`centos-art.sh'</tt>
      06d106
      script name, and a random identification string to let you run more
      06d106
      than one <tt>`centos-art.sh'</tt> script simultaneously on the same user
      06d106
      session.  For example, due the following temporal file defintion:
      06d106

      06d106
      cli_getTemporalFile $FILE
      06d106
      06d106

      If FILE name is <tt>`instance.svg'</tt> and the unique random string

      06d106
      is <samp>`f16f7b51-ac12-4b7f-9e66-72df847f12de'</samp>, the final temporal
      06d106
      file, built from previous temporal file definition, would be:
      06d106

      06d106
      /tmp/centos-art.sh-f16f7b51-ac12-4b7f-9e66-72df847f12de-instance.svg
      06d106
      06d106

      When you use the cli_getTemporalFile function to create

      06d106
      temporal files, be sure to remove temporal files created once you've
      06d106
      ended up with them.  For example, consider the following construction:
      06d106

      06d106
      for FILE in $FILES;do
      06d106
      06d106
          # Initialize temporal instance of file.
      06d106
          INSTANCE=$(cli_getTemporalFile $FILE)
      06d106
      06d106
          # Do something ... 
      06d106
      06d106
          # Remove temporal instance of file.
      06d106
          if [[ -f $INSTANCE ]];then
      06d106
              rm $INSTANCE
      06d106
          fi
      06d106
      06d106
      done
      06d106
      06d106

      Use the cli_getTemporalFile function whenever you need to

      06d106
      create temporal files inside <tt>`centos-art.sh'</tt> script.
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_getThemeName
      06d106
      06d106
      06d106

      Output theme name.

      06d106

      06d106

      In order for cli_getThemeName function to extract theme name

      06d106
      correctly, the ACTIONVAL variable must contain a directory path
      06d106
      under <tt>`trunk/Identity/Themes/Motifs/'</tt> directory structure.
      06d106
      Otherwise, cli_getThemeName returns an empty string.  
      06d106

      06d106
      06d106
      06d106
      <u>Function:</u> cli_printMessage MESSAGE [FORMAT]
      06d106
      06d106
      06d106

      Define standard output message definition supported by

      06d106
      <tt>`centos-art.sh'</tt> script.
      06d106

      06d106

      When FORMAT is not specified, cli_printMessage outputs

      06d106
      information just as it was passed in MESSAGE variable.
      06d106
      Otherwise, FORMAT can take one of the following values:
      06d106

      06d106
      06d106
      <samp>`AsHeadingLine'</samp>
      06d106

      To print heading messages.

      06d106

      ----------------------------------------------------------------------
      06d106
      $MESSAGE
      06d106
      ----------------------------------------------------------------------
      06d106
      06d106
      06d106
      <samp>`AsWarningLine'</samp>
      06d106

      To print warning messages.

      06d106

      ----------------------------------------------------------------------
      06d106
      WARNING: $MESSAGE
      06d106
      ----------------------------------------------------------------------
      06d106
      06d106
      06d106
      <samp>`AsNoteLine'</samp>
      06d106

      To print note messages.

      06d106

      ----------------------------------------------------------------------
      06d106
      NOTE: $MESSAGE
      06d106
      ----------------------------------------------------------------------
      06d106
      06d106
      06d106
      <samp>`AsUpdatingLine'</samp>
      06d106

      To print <samp>`Updating'</samp> messages on two-columns format.

      06d106

      Updating        $MESSAGE
      06d106
      06d106
      06d106
      <samp>`AsRemovingLine'</samp>
      06d106

      To print <samp>`Removing'</samp> messages on two-columns format.

      06d106

      Removing        $MESSAGE
      06d106
      06d106
      06d106
      <samp>`AsCheckingLine'</samp>
      06d106

      To print <samp>`Checking'</samp> messages on two-columns format.

      06d106

      Checking        $MESSAGE
      06d106
      06d106
      06d106
      <samp>`AsCreatingLine'</samp>
      06d106

      To print <samp>`Creating'</samp> messages on two-columns format.

      06d106

      Creating        $MESSAGE
      06d106
      06d106
      06d106
      <samp>`AsSavedAsLine'</samp>
      06d106

      To print <samp>`Saved as'</samp> messages on two-columns format.

      06d106

      Saved as        $MESSAGE
      06d106
      06d106
      06d106
      <samp>`AsLinkToLine'</samp>
      06d106

      To print <samp>`Linked to'</samp> messages on two-columns format.

      06d106

      Linked to       $MESSAGE
      06d106
      06d106
      06d106
      <samp>`AsMovedToLine'</samp>
      06d106

      To print <samp>`Moved to'</samp> messages on two-columns format.

      06d106

      Moved to        $MESSAGE
      06d106
      06d106
      06d106
      <samp>`AsTranslationLine'</samp>
      06d106

      To print <samp>`Translation'</samp> messages on two-columns format.

      06d106

      Translation     $MESSAGE
      06d106
      06d106
      06d106
      <samp>`AsConfigurationLine'</samp>
      06d106

      To print <samp>`Configuration'</samp> messages on two-columns format.

      06d106

      Configuration   $MESSAGE
      06d106
      06d106
      06d106
      <samp>`AsResponseLine'</samp>
      06d106

      To print response messages on one-column format.

      06d106

      --> $MESSAGE
      06d106
      06d106
      06d106
      <samp>`AsRequestLine'</samp>
      06d106

      To print request messages on one-column format. Request messages

      06d106
      output messages with one colon (<samp>`:'</samp>) and without trailing newline
      06d106
      (<samp>`\n'</samp>) at message end.
      06d106

      $MESSAGE:
      06d106
      06d106
      06d106
      <samp>`AsYesOrNoRequestLine'</samp>
      06d106

      To print <samp>`yes or no'</samp> request messages on one-column format. If

      06d106
      something different from <samp>`y'</samp> is answered (when using
      06d106
      en_US.UTF-8 locale), script execution ends immediatly.  
      06d106

      06d106
      $MESSAGE [y/N]:
      06d106
      06d106

      When we use <tt>`centos-art.sh'</tt> script in a locale different from

      06d106
      en_US.UTF-8, confirmation answer may be different from
      06d106
      <samp>`y'</samp>. For example, if you use es_ES.UTF-8 locale, the
      06d106
      confirmation question would look like:
      06d106

      06d106
      $MESSAGE [s/N]:
      06d106
      06d106

      and the confirmation answer would be <samp>`s'</samp>, as it is on Spanish

      06d106
      <samp>`sí'</samp> word.
      06d106

      06d106

      Definition of which confirmation word to use is set on translation

      06d106
      messages for your specific locale information. -- Removed(xref:trunk Scripts
      06d106
      Bash Functions Locale) --, for more information about locale-specific
      06d106
      translation messages.
      06d106

      06d106
      06d106
      <samp>`AsToKnowMoreLine'</samp>
      06d106

      To standardize <samp>`to know more, run the following command:'</samp>

      06d106
      messages. When the <samp>`AsToKnowMoreLine'</samp> option is used, the
      06d106
      MESSAGE value should be set to "$(caller)". caller
      06d106
      is a Bash builtin that returns the context of the current subroutine
      06d106
      call. <samp>`AsToKnowMoreLine'</samp> option uses caller builtin
      06d106
      output to build documentation entries dynamically.
      06d106

      06d106
      ----------------------------------------------------------------------
      06d106
      To know more, run the following command:
      06d106
      centos-art manual --read='path/to/dir'
      06d106
      ----------------------------------------------------------------------
      06d106
      06d106

      Use <samp>`AsToKnowMoreLine'</samp> option after errors and for intentional

      06d106
      script termination. 
      06d106

      06d106
      06d106
      <samp>`AsRegularLine'</samp>
      06d106

      To standardize regular messages on one-column format.

      06d106

      06d106

      When MESSAGE contains a colon inside (e.g., <samp>`description:

      06d106
      message'</samp>), the cli_printMessage function outputs MESSAGE
      06d106
      on two-columns format. 
      06d106

      06d106
      06d106
      06d106

      Use cli_printMessage function whenever you need to output

      06d106
      information from <tt>`centos-art.sh'</tt> script.
      06d106

      06d106
      Info

      Tip

      To improve two-columns format, change the following file:

      06d106

      trunk/Scripts/Bash/Styles/output_forTwoColumns.awk
      06d106
      06d106
      632e8b
      632e8b
      995423
      06d106

      2.64.3.3 Specific functions

      632e8b
      06d106

      The following specific functions of <tt>`centos-art.sh'</tt> script, are

      06d106
      available for you to use:
      06d106

      632e8b
      632e8b
      995423
      632e8b

      2.64.4 See also

      632e8b
      06d106
      06d106
      2.62 The <tt>`trunk/Scripts/Bash'</tt> Directory  
      06d106
      06d106
      34051a
      34051a
      34051a
      995423
      [ < ]
      995423
      [ > ]
      34051a
         
      671838
      [ << ]
      06d106
      [ Up ]
      06d106
      [ >> ]
      34051a
      34051a

      34051a
       <font size="-1">
      949b9b
        This document was generated on March, 11 2011 using texi2html 1.76.
      34051a
       </font>
      34051a
       
      34051a
      34051a

      34051a
      </body>
      34051a
      </html>