Blame Manuals/Filesystem/filesystem-html/filesystem_50.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>
421099
<title>CentOS Artwork Repository - File System: 3.47 trunk/Scripts/Bash</title>
ee1f37
421099
<meta name="description" content="CentOS Artwork Repository - File System: 3.47 trunk/Scripts/Bash">
421099
<meta name="keywords" content="CentOS Artwork Repository - File System: 3.47 trunk/Scripts/Bash">
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
010b2d
[ < ]
010b2d
[ > ]
ee1f37
   
db14a4
[ << ]
db14a4
[ Up ]
193ea4
[ >> ]
ee1f37
   
ee1f37
   
ee1f37
   
ee1f37
   
db14a4
[Top]
db14a4
[Contents]
193ea4
[Index]
db14a4
[ ? ]
ee1f37
ee1f37
010b2d
ee1f37

3.47 trunk/Scripts/Bash

ee1f37
ee1f37
010b2d
ee1f37

3.47.1 Goals

ee1f37
ee1f37

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

ee1f37
development line of <tt>`centos-art.sh'</tt> automation script.  The
ee1f37
<tt>`centos-art.sh'</tt> script standardizes frequent tasks inside your
ee1f37
working copy of CentOS Artwork Repository.
ee1f37

ee1f37
010b2d
ee1f37

3.47.2 Description

ee1f37
ee1f37

The best way to understand <tt>`centos-art.sh'</tt> automation script is

ee1f37
studying its source code.  However, as start point, you may prefer to
ee1f37
read an introductory resume before diving into the source code
ee1f37
details.
ee1f37

ee1f37

The <tt>`centos-art.sh'</tt> script is written in Bash. Most tasks, inside

ee1f37
<tt>`centos-art.sh'</tt> script, have been organized in many specific
ee1f37
functionalities that you can invoke from the centos-art
ee1f37
command-line interface.
ee1f37

ee1f37

When you type the centos-art command in your terminal, the

ee1f37
operating system trys to execute that command. In order to execute the
ee1f37
command, the operating system needs to know where it is, so the
ee1f37
operating system uses the PATH environment variable to look for
ee1f37
that command location. If your system was prepared to use CentOS
65cd8a
Artwork Repository correctly (-- Removed(pxref:trunk Scripts Bash Functions
65cd8a
Verify) --), you should have a symbolic link inside <tt>`~/bin/'</tt>
ee1f37
directory that points to the <tt>`centos-art.sh'</tt> script file. As
ee1f37
<tt>`~/bin/'</tt> directory is, by default, inside PATH environment
ee1f37
variable, the execution of centos-art command runs the
ee1f37
<tt>`centos-art.sh'</tt> script.
ee1f37

ee1f37

When <tt>`centos-art.sh'</tt> script is executed, the first it does is

ee1f37
executing the <tt>`trunk/Scripts/Bash/initEnvironment.sh'</tt> script to
ee1f37
initialize global variables (e.g., gettext variables) and
ee1f37
global function scripts.  Global function scripts are located inside
ee1f37
<tt>`trunk/Scripts/Bash/Functions'</tt> directory and their file names
ee1f37
begin with <samp>`cli'</samp>. Global function scripts provide common
ee1f37
functionalities that can be used anywhere inside <tt>`centos-art.sh'</tt>
ee1f37
script execution environment.
ee1f37

ee1f37

Once global variables and function scripts have been loaded,

ee1f37
<tt>`centos-art.sh'</tt> script executes the cli global function
ee1f37
from <tt>`cli.sh'</tt> function script to retrive command-line arguments
ee1f37
and define some default values that may be used later by specific
65cd8a
function scripts (-- Removed(pxref:trunk Scripts Bash Functions) --).
ee1f37

ee1f37

As convenction, the <tt>`centos-art.sh'</tt> command-line arguments have

ee1f37
the following format:
ee1f37

ee1f37
centos-art arg1 --arg2=val2 --arg3=val3
ee1f37
ee1f37

In the above example, <samp>`centos-art'</samp> is the command you use to

ee1f37
invoke <tt>`centos-art.sh'</tt> script. The <samp>`arg1'</samp> is required and
ee1f37
represents the functionality you want to perform (e.g.,
ee1f37
<samp>`verify'</samp>, <samp>`render'</samp>, <samp>`locale'</samp>, <samp>`manual'</samp>,
ee1f37
etc.). The remaining arguments are modifiers to <samp>`arg1'</samp>. The
ee1f37
<samp>`--arg2'</samp> definition is required and represets, specifically,
ee1f37
the action inside the functionality you want to perform.  The
ee1f37
<samp>`--arg3'</samp> and on, are optional.
ee1f37

ee1f37

Once command-line arguments have been retrived, the

ee1f37
<tt>`centos-art.sh'</tt> script loads specific functionalities using the
ee1f37
<tt>`cli_getFunctions.sh'</tt> function script. Only one specific
ee1f37
functionality can be loaded at one script execution I.e., you run
ee1f37
centos-art.sh script to run just one functionality.
ee1f37

ee1f37
ee1f37
+----------------------------------------------------------------------+
ee1f37
| [centos@host]$ centos-art function --action='value' --option='value' |
ee1f37
+----------------------------------------------------------------------+
ee1f37
| ~/bin/centos-art --> ~/artwork/trunk/Scripts/Bash/centos-art.sh      |
ee1f37
+---v-----------------------------------------v------------------------+
ee1f37
    | centos-art.sh                           |
ee1f37
    +---v---------------------------------v---+
ee1f37
    .   | initEnvironment.sh              |   .
ee1f37
    .   +---------------------------------+   .
ee1f37
    .   | cli $@                          |   .
ee1f37
    .   +---v-------------------------v---+   .
ee1f37
    .   .   | cli_getFunctions        |   .   .
ee1f37
    .   .   +---v-----------------v---+   .   .
ee1f37
    .   .   .   | function1       |   .   .   .
ee1f37
    .   .   .   | function2       |   .   .   .
ee1f37
    .   .   .   | function3       |   .   .   .
ee1f37
    .   .   .   +-----------------+   .   .   .
ee1f37
    .   .   ...........................   .   .
ee1f37
    .   ...................................   .
ee1f37
    ...........................................
ee1f37
ee1f37

Figure 3.1: The functionalities initialization environment.

ee1f37
ee1f37

ee1f37

Functionalities are implemented by means of actions. Once the

ee1f37
functionality has been initiazalized, actions initialization take
ee1f37
place for that functionality. Actions initialization model is very
ee1f37
similar to functions initialization model. But with the difference,
ee1f37
that actions are loaded inside function environment, and so, share
ee1f37
variables and functions defined inside function environment.
ee1f37

ee1f37
ee1f37
+--------------------------------------+
ee1f37
| cli_getFunctions                     |
ee1f37
+---v------------------------------v---+
ee1f37
.   | function1                    |   .
ee1f37
.   +---v----------------------v---+   .
ee1f37
.   .   | function1_getActions |   .   .
ee1f37
.   .   +---v--------------v---+   .   .
ee1f37
.   .   .   | action 1     |   .   .   .
ee1f37
.   .   .   | action 2     |   .   .   .
ee1f37
.   .   .   | action n     |   .   .   .
ee1f37
.   .   .   +--------------+   .   .   .
ee1f37
.   .   ........................   .   .
ee1f37
.   ................................   .
ee1f37
.   +------------------------------+   .
ee1f37
.   | function2                    |   .
ee1f37
.   +---v----------------------v---+   .
ee1f37
.   .   | function2_getActions |   .   .
ee1f37
.   .   +---v--------------v---+   .   .
ee1f37
.   .   .   | action 1     |   .   .   .
ee1f37
.   .   .   | action 2     |   .   .   .
ee1f37
.   .   .   | action n     |   .   .   .
ee1f37
.   .   .   +--------------+   .   .   .
ee1f37
.   .   ........................   .   .
ee1f37
.   ................................   .
ee1f37
.   +------------------------------+   .
ee1f37
.   | function3                    |   .
ee1f37
.   +---v----------------------v---+   .
ee1f37
.   .   | function3_getActions |   .   .
ee1f37
.   .   +---v--------------v---+   .   .
ee1f37
.   .   .   | action 1     |   .   .   .
ee1f37
.   .   .   | action 2     |   .   .   .
ee1f37
.   .   .   | action n     |   .   .   .
ee1f37
.   .   .   +--------------+   .   .   .
ee1f37
.   .   ........................   .   .
ee1f37
.   ................................   .
ee1f37
........................................
ee1f37
ee1f37

Figure 3.2: The actions initialization environment.

ee1f37
ee1f37

ee1f37
010b2d
ee1f37

3.47.3 Usage

ee1f37
ee1f37

The <tt>`centos-art.sh'</tt> script usage information is described inside

65cd8a
each specific function documentation (-- Removed(pxref:trunk Scripts Bash
65cd8a
Functions) --).
ee1f37

ee1f37
010b2d
ee1f37

3.47.4 See also

ee1f37
ee1f37
010b2d
3.46 trunk/Scripts  
ee1f37
ee1f37
ee1f37
ee1f37
ee1f37
010b2d
[ < ]
010b2d
[ > ]
ee1f37
   
db14a4
[ << ]
010b2d
[ Up ]
193ea4
[ >> ]
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>