Blame Manual/repository-html/repository_64.html

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

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

982d5c
b9dbd3
671838
671838

2.60.1 Goals

f66721
671838

This section exists to organize files related to shell

671838
functionality of <tt>`centos-art.sh'</tt> script.
f66721

f66721
671838
671838

2.60.2 Description

671838
671838

The shell functionality of <tt>`centos-art.sh'</tt> script helps

671838
you to maintain bash scripts inside repository. For example, suppose
671838
you've created many functionalities for <tt>`centos-art.sh'</tt> script,
671838
and you want to use a common copyright and license note for
671838
consistency in all your script files. If you have a bunch of files,
671838
doing this one by one wouldn't be a big deal. In contrast, if the
671838
amount of files grows, updating the copyright and license note for all
671838
of them would be a task rather tedious. The shell functionality
671838
exists to solve maintainance tasks just as the one previously
671838
mentioned.
063806

671838

When you use shell functionality to update copyright inside

671838
script files, it is required that your script files contain (at least)
671838
the following top commentary structure:
063806

671838
671838
 1| #!/bin/bash
671838
 2| #
671838
 3| # doSomething.sh -- The function description goes here.
671838
 4| # 
671838
 5| # Copyright
671838
 6| #
671838
 7| # ...
671838
 8| #
671838
 9| # ----------------------------------------------------------------------
671838
10| # $Id$
671838
11| # ----------------------------------------------------------------------
671838
12|
671838
13| function doSomething {
671838
14|     
671838
15| }
063806
671838

Figure 2.4: The functions script base comment structure

671838
063806

671838

Relevant lines in the above structure are lines from 5 to 9.

671838
Everything else in the file is left immutable.
063806

671838

When you are updating copyright through shell

671838
functionality,  the <tt>`centos-art.sh'</tt> script replaces everything
671838
in-between line 5 --the first one matching <samp>`^# Copyright .+$'</samp>
671838
string-- and line 9--the first long dash separator matching <samp>`^#
671838
-+$'</samp>-- with the content of copyright template instance.
063806

671838
Caution

Caution

Be sure to add the long dash separator that matches

671838
<samp>`^# -+$'</samp> regular expression before the function
671838
definition. Otherwise, if the <samp>`Copyright'</samp> line is present but no
671838
long dash separator exists, <tt>`centos-art.sh'</tt> will remove anything
671838
in-between the <samp>`Copyright'</samp> line and the end of file. This way you
671838
may lost your function definitions entirely.
671838

010b2d
671838

The copyright template instance is created from one copyright template

671838
stored in the <tt>`Config/tpl_forCopyright.sed'</tt> file.  The template
671838
instance is created once, and later removed when no longer needed. At
671838
this moment, when template instance is created, the
671838
<tt>`centos-art.sh'</tt> script takes advantage of automation in order to
671838
set copyright full name and date dynamically.
063806

671838

When you use shell functionality to update copyright, the first

671838
thing <tt>`shell'</tt> functionality does is requesting copyright
671838
information to user, and later, if values were left empty (i.e., no
671838
value was typed before pressing RET key), the <tt>`shell'</tt>
671838
functionality uses its own default values.
063806

671838

When shell functionality uses its own default values, the final

671838
copyright note looks like the following:
063806

671838
671838
 1| #!/bin/bash
671838
 2| #
671838
 3| # doSomthing.sh -- The function description goes here.
671838
 4| #
671838
 5| # Copyright (C) 2003, 2010 The CentOS Project
671838
 6| # 
671838
 7| # This program is free software; you can redistribute it and/or modify
671838
 8| # it under the terms of the GNU General Public License as published by
671838
 9| # the Free Software Foundation; either version 2 of the License, or
671838
10| # (at your option) any later version.
671838
11| # 
671838
12| # This program is distributed in the hope that it will be useful, but
671838
13| # WITHOUT ANY WARRANTY; without even the implied warranty of
671838
14| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
671838
15| # General Public License for more details.
671838
16| #
671838
17| # You should have received a copy of the GNU General Public License
671838
18| # along with this program; if not, write to the Free Software
671838
19| # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
671838
20| # USA.
671838
21| #
671838
22| # ----------------------------------------------------------------------
671838
23| # $Id$
671838
24| # ----------------------------------------------------------------------
671838
25|
671838
26| function doSomething {
671838
27|
671838
28| }
063806
671838

Figure 2.5: The function script comment example

671838
063806

671838

Relevant lines in the above structure are lines from 5 to 22. Pay

671838
attention how the copyright line was built, and how the license was
671838
added into the top comment where previously was just three dots.
671838
Everything else in the file was left immutable. 
063806

671838

To change copyright information (i.e., full name or year information),

671838
run the shell functionality over the root directory containing
671838
the script files you want to update copyright in and enter the
671838
appropriate information when it be requested. You can run the
671838
shell functionality as many times as you need to.
063806

671838

To change copyright license (i.e., the text in-between lines 7 and

671838
20), you need to edit the <tt>`Config/tpl_forCopyright.sed'</tt> file, set
671838
the appropriate information, and run the shell functionality
671838
once again for changes to take effect over the files you specify.
063806

671838
Important

Important

The <tt>`centos-art.sh'</tt> script is released as:

f66721

671838
GNU GENERAL PUBLIC LICENSE
671838
Version 2, June 1991
b130a0
671838
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
671838
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
f66721
671838

Do not change the license information under which <tt>`centos-art.sh'</tt>

671838
script is released. Instead, if you think a different license must be
671838
used, please share your reasons at CentOS Developers mailing list.
671838

b9dbd3
b9dbd3
671838
671838

2.60.3 Usage

671838
b9dbd3
671838
centos-art sh --update-copyright='path/to/dir'
671838
centos-art sh --update-copyright='path/to/dir' --filter='regex'
671838

Use these commands to update copyright information in <samp>`.sh'</samp> files

671838
under <samp>`path/to/dir'</samp> directory. 
671838

f66721
b9dbd3
671838

When you provide <samp>`--filter='regex''</samp> argument, the list of files

671838
to process is reduced as specified in <samp>`regex'</samp> regular expression.
671838
Inside <tt>`centos-art.sh'</tt> script, the <samp>`regex'</samp> regular
671838
expression is used in combination with find command to look
671838
for files matching the regular expression path pattern.
f66721

671838
Warning

Warning

In order for <samp>`regex'</samp> regular expression to match

671838
a file, the <samp>`regex'</samp> regular expresion must match the whole file
671838
path not just the file name. 
671838

f66721
671838

For example, if you want to match all <tt>`render.conf.sh'</tt> files

671838
inside <tt>`path/to/dir'</tt>, use the .+/render.conf regular
671838
expression.  Later, <tt>`centos-art.sh'</tt> script uses this value inside
671838
^$REGEX\.sh$ expression in order to build the final regular
671838
expression (i.e., ^.+/render.conf\.sh$) that is evaluated
671838
against available file paths inside the list of files to process.
671838

671838

Exceptionally, when you provide <samp>`--filter='regex''</samp> in the way

671838
that <samp>`regex'</samp>, appended to <samp>`path/to/dir/'</samp> (i.e.
671838
<samp>`path/to/dir/regex'</samp>), matches a regular file; the
671838
<tt>`centos-art.sh'</tt> script uses the file matching as only file in the
671838
list of files to process. 
671838

671838
671838
671838

2.60.4 See also

5cb5a7
b9dbd3
671838
2.50 The <tt>`trunk/Scripts/Bash'</tt> Directory  
b9dbd3
b9dbd3
5cb5a7
5cb5a7
db14a4
671838
[ < ]
671838
[ > ]
db14a4
   
671838
[ << ]
671838
[ Up ]
671838
[ >> ]
db14a4
db14a4

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

db14a4
</body>
db14a4
</html>