|
|
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 |
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 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 |
Path to one directory inside the local working copy,
|
|
|
06d106 |
Path to one file inside the local working copy,
|
|
|
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 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 |
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>
|