Blame Manuals/Repository/repository-html/repository_60.html

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

3.57 trunk/Scripts/Bash/Functions/Shell

4a9d2a
4a9d2a
42563b
4a9d2a

3.57.1 Goals

4a9d2a
70ef27

This section exists to organize files related to shell

42563b
functionality of <tt>`centos-art.sh'</tt> script.
4a9d2a

4a9d2a
42563b
4a9d2a

3.57.2 Description

4a9d2a
70ef27

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

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

70ef27

When you use shell functionality to update copyright inside

70ef27
script files, it is required that your script files contain (at least)
70ef27
the following top commentary structure:
42563b

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

Figure 3.4: The functions script base comment structure

70ef27
2c3589

70ef27

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

70ef27
Everything else in the file is left immutable.
2c3589

70ef27

When you are updating copyright through shell

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

70ef27
Caution

Caution

Be sure to add the long dash separator that matches

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

70ef27
70ef27

The copyright template instance is created from one copyright template

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

70ef27

When you use shell functionality to update copyright, the first

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

70ef27

When shell functionality uses its own default values, the final

70ef27
copyright note looks like the following:
2c3589

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

Figure 3.5: The function script comment example

70ef27
2c3589

70ef27

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

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

70ef27

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

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

70ef27

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

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

70ef27
Important

Important

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

6a8116

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

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

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

42563b
42563b
70ef27
2c3589

3.57.3 Usage

2c3589
2c3589
70ef27
centos-art sh --update-copyright='path/to/dir'
70ef27
centos-art sh --update-copyright='path/to/dir' --filter='regex'
70ef27

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

70ef27
under <samp>`path/to/dir'</samp> directory. 
42563b

2c3589
2c3589
42563b

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

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

42563b
Warning

Warning

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

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

42563b
70ef27

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

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

42563b

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

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

2c3589
70ef27
38bcd9

3.57.4 See also

38bcd9
4a9d2a
70ef27
3.49 trunk/Scripts/Bash  
4a9d2a
70ef27
3.50 trunk/Scripts/Bash/Functions  
4a9d2a
4a9d2a
008ee0
6aec21
300762
70ef27
[ < ]
70ef27
[ > ]
300762
   
300762
[ << ]
42563b
[ Up ]
70ef27
[ >> ]
300762
4c79b5

4c79b5
 <font size="-1">
bf28e1
  This document was generated on February, 27 2011 using texi2html 1.76.
4c79b5
 </font>
4c79b5
 
4c79b5
4c79b5

4c79b5
</body>
4c79b5
</html>