Blame Manual/repository-html/repository_53.html

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

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

b130a0
b130a0
b130a0
b130a0

1.52.1 Goals

b130a0
b130a0

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

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

b130a0
b130a0
b130a0

1.52.2 Description

b130a0
b130a0

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

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

b130a0

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

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

b130a0

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

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

b130a0

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

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

b130a0
Info

Tip

Join CentOS developers mailing list

b130a0
centos-art@centos.org to share your ideas.
b130a0

b130a0
b130a0

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

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

b130a0

OK, let's begin with our functionality example.

b130a0

b130a0

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

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

b130a0

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

b130a0

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

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

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

b130a0

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

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

b130a0

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

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

b130a0

In our greet function example, top commentary for

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

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

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

b130a0
function definition would look like the following:
b130a0

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

The first definition inside greet function, are global

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

b130a0

Later, we call greet_getActions function to define the

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

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

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

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

b130a0

The greet function definition makes available two valid

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

b130a0

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

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

b130a0

The greet_doHello and greet_doBye function definitions

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

b130a0
function greet_doHello {
b130a0
b130a0
    cli_printMessage "`gettext "Hello"` $ACTIONVAL"
b130a0
b130a0
}
b130a0
b130a0

The greet_doHello function definition is stored in

b130a0
<tt>`greet_doHello.sh'</tt> function script. 
b130a0

b130a0
function greet_doBye {
b130a0
b130a0
    cli_printMessage "`gettext "Goodbye"` $ACTIONVAL"
b130a0
b130a0
}
b130a0
b130a0

The greet_doBye function definition is stored in the

b130a0
<tt>`greet_doBye.sh'</tt> function script. 
b130a0

b130a0

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

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

b130a0

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

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

b130a0

Let's see how greet specific functionality files are organzied

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

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

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

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

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

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

b130a0
change it to have a little fun.
b130a0

b130a0

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

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

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

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

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

b130a0

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

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

b130a0
centos-art locale --edit
b130a0
b130a0
Warning

Warning

To translate output messages in different languages,

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

b130a0
b130a0

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

b130a0

b130a0

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

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

b130a0

The greet function described in this section may serve you as

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

b130a0

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

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

b130a0
aaf678
b130a0

1.52.3 Usage

982d5c
982d5c
aaf678
b130a0

1.52.3.1 Global variables

b130a0
b130a0

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

b130a0
available for you to use inside specific functions:
b130a0

b130a0
b130a0
<u>Variable:</u> TEXTDOMAIN
b130a0
b130a0
b130a0

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

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

b130a0
b130a0
b130a0
<u>Variable:</u> TEXTDOMAINDIR
b130a0
b130a0
b130a0

Default directory used to retrieve translated messages. This value is

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

b130a0
b130a0
b130a0
<u>Variable:</u> FUNCNAM
b130a0
b130a0
b130a0

Define function name.

b130a0

b130a0

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

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

b130a0

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

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

b130a0

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

b130a0
immediatly ends its execution.
b130a0

b130a0
b130a0
b130a0
<u>Variable:</u> FUNCDIR
b130a0
b130a0
b130a0
b130a0
b130a0
b130a0
<u>Variable:</u> FUNCDIRNAME
b130a0
b130a0
b130a0
b130a0
b130a0
b130a0
<u>Variable:</u> FUNCSCRIPT
b130a0
b130a0
b130a0
982d5c
b130a0
b130a0
<u>Variable:</u> FUNCCONFIG
b130a0
b130a0
b130a0
b130a0
b130a0
b130a0
<u>Variable:</u> ACTIONNAM
b130a0
b130a0
b130a0

Define action name.

b130a0

b130a0

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

b130a0
specific function.
b130a0

b130a0

Action name names aare passed as second argument in

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

b130a0

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

b130a0
immediatly ends its execution.
b130a0

b130a0
b130a0
b130a0
<u>Variable:</u> ACTIONVAL
b130a0
b130a0
b130a0

Define action value.

b130a0

b130a0

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

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

b130a0
b130a0
b130a0
<u>Variable:</u> REGEX
b130a0
b130a0
b130a0

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

b130a0
to process.
b130a0

b130a0

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

b130a0
files.
b130a0

b130a0

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

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

b130a0
b130a0
b130a0
<u>Variable:</u> ARGUMENTS
b130a0
b130a0
b130a0

Define optional arguments.

b130a0

b130a0

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

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

b130a0

Optional arguments are parsed using getopt command through

b130a0
the following base construction: 
b130a0

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

Optional arguments provide support to command options inside

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

b130a0

The ARGUMENTS variable is used to store arguments passed from

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

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

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

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

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

When getopt parses ARGUMENTS, we may use short options

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

b130a0

In order for getopt to parse ARGUMENTS correctly, it

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

b130a0

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

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

b130a0

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

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

b130a0
b130a0
b130a0
<u>Variable:</u> EDITOR
b130a0
b130a0
b130a0

Default text editor.

b130a0

b130a0

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

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

b130a0

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

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

ee1f37
    b130a0
  • <tt>`/usr/bin/vim'</tt>
  • b130a0
  • <tt>`/usr/bin/emacs'</tt>
  • b130a0
  • <tt>`/usr/bin/nano'</tt>
  • ee1f37
    ee1f37
    b130a0

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

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

    b130a0
    ee1f37
    aaf678
    b130a0

    1.52.3.2 Global functions

    982d5c
    b130a0

    Function scripts stored directly under

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

    b130a0
    b130a0
    <u>Function:</u> cli_checkActionArguments
    b130a0
    b130a0
    b130a0

    Validate action value (ACTIONVAL) variable.

    b130a0

    b130a0

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

    b130a0

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

      If another value different from that specified above is passed to

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_checkFiles FILE [TYPE]
      b130a0
      b130a0
      b130a0

      Verify file existence.

      b130a0

      b130a0

      cli_checkFiles receives a FILE absolute path and performs

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

      b130a0
      b130a0
      <samp>`d'</samp>
      b130a0
      <samp>`directory'</samp>
      b130a0

      Ends script execution if FILE is not a directory.

      b130a0

      b130a0

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

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

      b130a0
      b130a0
      <samp>`f'</samp>
      b130a0
      <samp>`regular-file'</samp>
      b130a0

      Ends script execution if FILE is not a regular file.

      b130a0

      b130a0
      <samp>`h'</samp>
      b130a0
      <samp>`symbolic-link'</samp>
      b130a0

      Ends script execution if FILE is not a symbolic link.

      b130a0

      b130a0
      <samp>`x'</samp>
      b130a0
      <samp>`execution'</samp>
      b130a0

      Ends script execution if FILE is not executable.

      b130a0

      b130a0
      <samp>`fh'</samp>
      b130a0

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

      b130a0
      symbolic link.
      b130a0

      b130a0
      <samp>`fd'</samp>
      b130a0

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

      b130a0
      directory.
      b130a0

      b130a0
      <samp>`isInWorkingCopy'</samp>
      b130a0

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

      b130a0

      b130a0
      b130a0
      b130a0

      As default behaviour, if FILE passes all verifications,

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_commitRepoChanges [LOCATION]
      b130a0
      b130a0
      b130a0

      Syncronize changes between repository and working copy.

      b130a0

      b130a0

      The cli_commitRepoChanges function brings changes from the

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

      b130a0

      Previous to commit the working copy changes up to the central

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

      b130a0

      If LOCATION argument is not specified, the value of

      b130a0
      ACTIONVAL variable is used as reference instead.
      b130a0

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

      Figure 1.3: The cli_commitRepoChanges function output.

      b130a0
      b130a0

      b130a0

      Call the cli_commitRepoChanges function before or/and after

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_doParseArguments
      b130a0
      b130a0
      b130a0

      Redefine arguments (ARGUMENTS) global variable using

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_doParseArgumentsReDef $@
      b130a0
      b130a0
      b130a0

      Initialize/reset arguments (ARGUMENTS) global variable using

      b130a0
      positional parameters variable ($@) as reference.
      b130a0

      b130a0

      When we work inside function definitions, positional parameters are

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_getArguments
      b130a0
      b130a0
      b130a0

      Initialize function name (FUNCNAM), action name

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

      b130a0

      The cli_getArguments function is called from cli.sh

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

      b130a0

      Once command-line positional parameters are accesible to

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

      b130a0

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

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

      b130a0

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

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

      b130a0

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

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_getFunctions
      b130a0
      b130a0
      b130a0

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

      b130a0

      b130a0

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

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

      b130a0

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

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

      b130a0

      Inside each functionality directory, the functionalty itself is

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

      b130a0

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

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

      b130a0
      function prefix_doSomething {
      b130a0
      b130a0
          # Do something here...
      b130a0
      b130a0
      }
      b130a0
      b130a0

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

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

      b130a0

      If the functionality specified in the command-line first argument

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

      b130a0

      In order to keep visual consistency among function scripts, please

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

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

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

      b130a0

      b130a0

      The cli_getCountryCodes function outputs a list with country

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_getCountryName [FILTER]
      b130a0
      b130a0
      b130a0

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

      b130a0

      b130a0

      The cli_getCountryName function reads one language locale code

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

      b130a0
       
      b130a0
      b130a0
      <u>Function:</u> cli_getCurrentLocale
      b130a0
      b130a0
      b130a0

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

      b130a0

      b130a0

      The cli_getCurrentLocale function uses LANG environment

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

      b130a0

      The current locale information, returned by

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

      b130a0

      Locale precedence selection is quite important in order to define the

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

      b130a0

      Use cli_getCurrentLocale function to know what current locale

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_getFilesList [LOCATION]
      b130a0
      b130a0
      b130a0

      Output list of files to process.

      b130a0

      b130a0

      The cli_getFilesList function uses LOCATION variable as

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

      b130a0

      If LOCATION is not specified when cli_getFilesList

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

      b130a0

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

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

      b130a0

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

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

      b130a0

      As result, the cli_getFilesList re-defines the value of

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

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

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

      b130a0

      b130a0

      cli_getLangCodes function outputs a list of language codes as

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_getLangName [FILTER]
      b130a0
      b130a0
      b130a0

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

      b130a0

      b130a0

      cli_getLangName function reads one language locale code in the

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_getLocales
      b130a0
      b130a0
      b130a0

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

      b130a0

      b130a0

      Occasionally, you use cli_getLocales function to add locale

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_getRepoName NAME TYPE
      b130a0
      b130a0
      b130a0

      Sanitate file names.

      b130a0

      b130a0

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

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

      b130a0
      Important

      Important

      cli_getRepoName function doesn't verify file

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

      b130a0
      b130a0

      The NAME variable contains the file name or directory name you

      b130a0
      want to sanitate.
      b130a0

      b130a0

      The TYPE variable specifies what type of sanitation you want to

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

      b130a0
      b130a0
      <samp>`d'</samp>
      b130a0
      <samp>`directory'</samp>
      b130a0

      Sanitate directory NAMEs.

      b130a0

      b130a0
      <samp>`f'</samp>
      b130a0
      <samp>`regular-file'</samp>
      b130a0

      Sanitate regular file NAMEs.

      b130a0

      b130a0
      b130a0
      b130a0

      Use cli_getRepoName function to sanitate file names and

      b130a0
      directory names before their utilization. 
      b130a0

      b130a0

      Use cli_getRepoName when you need to change file name

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

      b130a0

      When we change file name convenctions inside cli_getRepoName

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_getRepoStatus [LOCATION]
      b130a0
      b130a0
      b130a0

      Request repository status.

      b130a0

      b130a0

      This function requests the status of a LOCATION inside the

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

      b130a0

      Use this function to perform verifications based a repository

      b130a0
      LOCATION status.
      b130a0

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_getTemporalFile NAME
      b130a0
      b130a0
      b130a0

      Output absolute path to temporal file NAME.

      b130a0

      b130a0

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

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

      b130a0
      cli_getTemporalFile $FILE
      b130a0
      b130a0

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

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

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

      When you use the cli_getTemporalFile function to create

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

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

      Use the cli_getTemporalFile function whenever you need to

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_getThemeName
      b130a0
      b130a0
      b130a0

      Output theme name.

      b130a0

      b130a0

      In order for cli_getThemeName function to extract theme name

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

      b130a0
      b130a0
      b130a0
      <u>Function:</u> cli_printMessage MESSAGE [FORMAT]
      b130a0
      b130a0
      b130a0

      Define standard output message definition supported by

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

      b130a0

      When FORMAT is not specified, cli_printMessage outputs

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

      b130a0
      b130a0
      <samp>`AsHeadingLine'</samp>
      b130a0

      To print heading messages.

      b130a0

      ----------------------------------------------------------------------
      b130a0
      $MESSAGE
      b130a0
      ----------------------------------------------------------------------
      b130a0
      b130a0
      b130a0
      <samp>`AsWarningLine'</samp>
      b130a0

      To print warning messages.

      b130a0

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

      To print note messages.

      b130a0

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

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

      b130a0

      Updating        $MESSAGE
      b130a0
      b130a0
      b130a0
      <samp>`AsRemovingLine'</samp>
      b130a0

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

      b130a0

      Removing        $MESSAGE
      b130a0
      b130a0
      b130a0
      <samp>`AsCheckingLine'</samp>
      b130a0

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

      b130a0

      Checking        $MESSAGE
      b130a0
      b130a0
      b130a0
      <samp>`AsCreatingLine'</samp>
      b130a0

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

      b130a0

      Creating        $MESSAGE
      b130a0
      b130a0
      b130a0
      <samp>`AsSavedAsLine'</samp>
      b130a0

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

      b130a0

      Saved as        $MESSAGE
      b130a0
      b130a0
      b130a0
      <samp>`AsLinkToLine'</samp>
      b130a0

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

      b130a0

      Linked to       $MESSAGE
      b130a0
      b130a0
      b130a0
      <samp>`AsMovedToLine'</samp>
      b130a0

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

      b130a0

      Moved to        $MESSAGE
      b130a0
      b130a0
      b130a0
      <samp>`AsTranslationLine'</samp>
      b130a0

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

      b130a0

      Translation     $MESSAGE
      b130a0
      b130a0
      b130a0
      <samp>`AsConfigurationLine'</samp>
      b130a0

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

      b130a0

      Configuration   $MESSAGE
      b130a0
      b130a0
      b130a0
      <samp>`AsResponseLine'</samp>
      b130a0

      To print response messages on one-column format.

      b130a0

      --> $MESSAGE
      b130a0
      b130a0
      b130a0
      <samp>`AsRequestLine'</samp>
      b130a0

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

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

      $MESSAGE:
      b130a0
      b130a0
      b130a0
      <samp>`AsYesOrNoRequestLine'</samp>
      b130a0

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

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

      b130a0
      $MESSAGE [y/N]:
      b130a0
      b130a0

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

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

      b130a0
      $MESSAGE [s/N]:
      b130a0
      b130a0

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

      b130a0
      <samp>`sí'</samp> word.
      b130a0

      b130a0

      Definition of which confirmation word to use is set on translation

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

      b130a0
      b130a0
      <samp>`AsToKnowMoreLine'</samp>
      b130a0

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

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

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

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

      b130a0
      script termination. 
      b130a0

      b130a0
      b130a0
      <samp>`AsRegularLine'</samp>
      b130a0

      To standardize regular messages on one-column format.

      b130a0

      b130a0

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

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

      b130a0
      b130a0
      b130a0

      Use cli_printMessage function whenever you need to output

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

      b130a0
      Info

      Tip

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

      b130a0

      trunk/Scripts/Bash/Styles/output_forTwoColumns.awk
      b130a0
      b130a0
      010b2d
      010b2d
      aaf678
      b130a0

      1.52.3.3 Specific functions

      010b2d
      b130a0

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

      b130a0
      available for you to use:
      b130a0

      010b2d
      ee1f37
      aaf678
      aaf678

      1.52.4 See also

      ee1f37
      b130a0
      b130a0
      1.50 The <tt>`trunk/Scripts/Bash'</tt> Directory  
      b130a0
      b130a0
      ee1f37
      ee1f37
      ee1f37
      aaf678
      [ < ]
      aaf678
      [ > ]
      ee1f37
         
      aaf678
      [ << ]
      b130a0
      [ Up ]
      b130a0
      [ >> ]
      ee1f37
      ee1f37

      ee1f37
       <font size="-1">
      406f69
        This document was generated on March, 1 2011 using texi2html 1.76.
      ee1f37
       </font>
      ee1f37
       
      ee1f37
      ee1f37

      ee1f37
      </body>
      ee1f37
      </html>