|
|
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 |
-->
|
|
|
ee1f37 |
|
|
|
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>
|
|
|
d05905 |
<title>CentOS Artwork Repository - Filesystem: 3.55 trunk/Scripts/Bash/Functions/Shell</title>
|
|
|
ee1f37 |
|
|
|
d05905 |
<meta name="description" content="CentOS Artwork Repository - Filesystem: 3.55 trunk/Scripts/Bash/Functions/Shell">
|
|
|
d05905 |
<meta name="keywords" content="CentOS Artwork Repository - Filesystem: 3.55 trunk/Scripts/Bash/Functions/Shell">
|
|
|
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 |
|
|
|
db14a4 |
[ < ]
|
|
|
ee1f37 |
[ > ]
|
|
|
ee1f37 |
|
|
|
db14a4 |
[ << ]
|
|
|
db14a4 |
[ Up ]
|
|
|
db14a4 |
[ >> ]
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
db14a4 |
[Top]
|
|
|
db14a4 |
[Contents]
|
|
|
db14a4 |
[Index]
|
|
|
db14a4 |
[ ? ]
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
3.55 trunk/Scripts/Bash/Functions/Shell
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
3.55.1 Goals
|
|
|
ee1f37 |
|
|
|
ee1f37 |
This section exists to organize files related to shell
|
|
|
ee1f37 |
functionality of <tt>`centos-art.sh'</tt> script.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
3.55.2 Description
|
|
|
ee1f37 |
|
|
|
ee1f37 |
The shell functionality of <tt>`centos-art.sh'</tt> script helps
|
|
|
ee1f37 |
you to maintain bash scripts inside repository. For example, suppose
|
|
|
ee1f37 |
you've created many functionalities for <tt>`centos-art.sh'</tt> script,
|
|
|
ee1f37 |
and you want to use a common copyright and license note for
|
|
|
ee1f37 |
consistency in all your script files. If you have a bunch of files,
|
|
|
ee1f37 |
doing this one by one wouldn't be a big deal. In contrast, if the
|
|
|
ee1f37 |
amount of files grows, updating the copyright and license note for all
|
|
|
ee1f37 |
of them would be a task rather tedious. The shell functionality
|
|
|
ee1f37 |
exists to solve maintainance tasks just as the one previously
|
|
|
ee1f37 |
mentioned.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
When you use shell functionality to update copyright inside
|
|
|
ee1f37 |
script files, it is required that your script files contain (at least)
|
|
|
ee1f37 |
the following top commentary structure:
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
1| #!/bin/bash
|
|
|
ee1f37 |
2| #
|
|
|
ee1f37 |
3| # doSomething.sh -- The function description goes here.
|
|
|
ee1f37 |
4| #
|
|
|
ee1f37 |
5| # Copyright
|
|
|
ee1f37 |
6| #
|
|
|
ee1f37 |
7| # ...
|
|
|
ee1f37 |
8| #
|
|
|
ee1f37 |
9| # ----------------------------------------------------------------------
|
|
|
ee1f37 |
10| # $Id$
|
|
|
ee1f37 |
11| # ----------------------------------------------------------------------
|
|
|
ee1f37 |
12|
|
|
|
ee1f37 |
13| function doSomething {
|
|
|
ee1f37 |
14|
|
|
|
ee1f37 |
15| }
|
|
|
ee1f37 |
|
|
|
ee1f37 |
Figure 3.4: The functions script base comment structure
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
Relevant lines in the above structure are lines from 5 to 9.
|
|
|
ee1f37 |
Everything else in the file is left immutable.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
When you are updating copyright through shell
|
|
|
ee1f37 |
functionality, the <tt>`centos-art.sh'</tt> script replaces everything
|
|
|
ee1f37 |
in-between line 5 --the first one matching <samp>`^# Copyright .+$'</samp>
|
|
|
ee1f37 |
string-- and line 9--the first long dash separator matching <samp>`^#
|
|
|
ee1f37 |
-+$'</samp>-- with the content of copyright template instance.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
Caution Be sure to add the long dash separator that matches
|
|
|
ee1f37 |
<samp>`^# -+$'</samp> regular expression before the function
|
|
|
ee1f37 |
definition. Otherwise, if the <samp>`Copyright'</samp> line is present but no
|
|
|
ee1f37 |
long dash separator exists, <tt>`centos-art.sh'</tt> will remove anything
|
|
|
ee1f37 |
in-between the <samp>`Copyright'</samp> line and the end of file. This way you
|
|
|
ee1f37 |
may lost your function definitions entirely.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
The copyright template instance is created from one copyright template
|
|
|
ee1f37 |
stored in the <tt>`Config/tpl_forCopyright.sed'</tt> file. The template
|
|
|
ee1f37 |
instance is created once, and later removed when no longer needed. At
|
|
|
ee1f37 |
this moment, when template instance is created, the
|
|
|
ee1f37 |
<tt>`centos-art.sh'</tt> script takes advantage of automation in order to
|
|
|
ee1f37 |
set copyright full name and date dynamically.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
When you use shell functionality to update copyright, the first
|
|
|
ee1f37 |
thing <tt>`shell'</tt> functionality does is requesting copyright
|
|
|
ee1f37 |
information to user, and later, if values were left empty (i.e., no
|
|
|
ee1f37 |
value was typed before pressing RET key), the <tt>`shell'</tt>
|
|
|
ee1f37 |
functionality uses its own default values.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
When shell functionality uses its own default values, the final
|
|
|
ee1f37 |
copyright note looks like the following:
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
1| #!/bin/bash
|
|
|
ee1f37 |
2| #
|
|
|
ee1f37 |
3| # doSomthing.sh -- The function description goes here.
|
|
|
ee1f37 |
4| #
|
|
|
ee1f37 |
5| # Copyright (C) 2003, 2010 The CentOS Project
|
|
|
ee1f37 |
6| #
|
|
|
ee1f37 |
7| # This program is free software; you can redistribute it and/or modify
|
|
|
ee1f37 |
8| # it under the terms of the GNU General Public License as published by
|
|
|
ee1f37 |
9| # the Free Software Foundation; either version 2 of the License, or
|
|
|
ee1f37 |
10| # (at your option) any later version.
|
|
|
ee1f37 |
11| #
|
|
|
ee1f37 |
12| # This program is distributed in the hope that it will be useful, but
|
|
|
ee1f37 |
13| # WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
ee1f37 |
14| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
ee1f37 |
15| # General Public License for more details.
|
|
|
ee1f37 |
16| #
|
|
|
ee1f37 |
17| # You should have received a copy of the GNU General Public License
|
|
|
ee1f37 |
18| # along with this program; if not, write to the Free Software
|
|
|
ee1f37 |
19| # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
|
|
ee1f37 |
20| # USA.
|
|
|
ee1f37 |
21| #
|
|
|
ee1f37 |
22| # ----------------------------------------------------------------------
|
|
|
ee1f37 |
23| # $Id$
|
|
|
ee1f37 |
24| # ----------------------------------------------------------------------
|
|
|
ee1f37 |
25|
|
|
|
ee1f37 |
26| function doSomething {
|
|
|
ee1f37 |
27|
|
|
|
ee1f37 |
28| }
|
|
|
ee1f37 |
|
|
|
ee1f37 |
Figure 3.5: The function script comment example
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
Relevant lines in the above structure are lines from 5 to 22. Pay
|
|
|
ee1f37 |
attention how the copyright line was built, and how the license was
|
|
|
ee1f37 |
added into the top comment where previously was just three dots.
|
|
|
ee1f37 |
Everything else in the file was left immutable.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
To change copyright information (i.e., full name or year information),
|
|
|
ee1f37 |
run the shell functionality over the root directory containing
|
|
|
ee1f37 |
the script files you want to update copyright in and enter the
|
|
|
ee1f37 |
appropriate information when it be requested. You can run the
|
|
|
ee1f37 |
shell functionality as many times as you need to.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
To change copyright license (i.e., the text in-between lines 7 and
|
|
|
ee1f37 |
20), you need to edit the <tt>`Config/tpl_forCopyright.sed'</tt> file, set
|
|
|
ee1f37 |
the appropriate information, and run the shell functionality
|
|
|
ee1f37 |
once again for changes to take effect over the files you specify.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
Important The <tt>`centos-art.sh'</tt> script is released as:
|
|
|
ee1f37 |
|
|
|
ee1f37 |
GNU GENERAL PUBLIC LICENSE
|
|
|
ee1f37 |
Version 2, June 1991
|
|
|
ee1f37 |
|
|
|
ee1f37 |
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
|
|
ee1f37 |
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
Do not change the license information under which <tt>`centos-art.sh'</tt>
|
|
|
ee1f37 |
script is released. Instead, if you think a different license must be
|
|
|
ee1f37 |
used, please share your reasons at CentOS Developers mailing list.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
3.55.3 Usage
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
centos-art sh --update-copyright='path/to/dir'
|
|
|
ee1f37 |
centos-art sh --update-copyright='path/to/dir' --filter='regex'
|
|
|
ee1f37 |
Use these commands to update copyright information in <samp>`.sh'</samp> files
|
|
|
ee1f37 |
under <samp>`path/to/dir'</samp> directory.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
When you provide <samp>`--filter='regex''</samp> argument, the list of files
|
|
|
ee1f37 |
to process is reduced as specified in <samp>`regex'</samp> regular expression.
|
|
|
ee1f37 |
Inside <tt>`centos-art.sh'</tt> script, the <samp>`regex'</samp> regular
|
|
|
ee1f37 |
expression is used in combination with find command to look
|
|
|
ee1f37 |
for files matching the regular expression path pattern.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
Warning In order for <samp>`regex'</samp> regular expression to match
|
|
|
ee1f37 |
a file, the <samp>`regex'</samp> regular expresion must match the whole file
|
|
|
ee1f37 |
path not just the file name.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
For example, if you want to match all <tt>`render.conf.sh'</tt> files
|
|
|
ee1f37 |
inside <tt>`path/to/dir'</tt>, use the .+/render.conf regular
|
|
|
ee1f37 |
expression. Later, <tt>`centos-art.sh'</tt> script uses this value inside
|
|
|
ee1f37 |
^$REGEX\.sh$ expression in order to build the final regular
|
|
|
ee1f37 |
expression (i.e., ^.+/render.conf\.sh$ ) that is evaluated
|
|
|
ee1f37 |
against available file paths inside the list of files to process.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
Exceptionally, when you provide <samp>`--filter='regex''</samp> in the way
|
|
|
ee1f37 |
that <samp>`regex'</samp>, appended to <samp>`path/to/dir/'</samp> (i.e.
|
|
|
ee1f37 |
<samp>`path/to/dir/regex'</samp>), matches a regular file; the
|
|
|
ee1f37 |
<tt>`centos-art.sh'</tt> script uses the file matching as only file in the
|
|
|
ee1f37 |
list of files to process.
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
3.55.4 See also
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
db14a4 |
3.47 trunk/Scripts/Bash
|
|
|
ee1f37 |
|
|
|
db14a4 |
3.48 trunk/Scripts/Bash/Functions
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
[ < ]
|
|
|
db14a4 |
[ > ]
|
|
|
ee1f37 |
|
|
|
db14a4 |
[ << ]
|
|
|
ee1f37 |
[ Up ]
|
|
|
db14a4 |
[ >> ]
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
<font size="-1">
|
|
|
ee1f37 |
This document was generated on February, 27 2011 using texi2html 1.76.
|
|
|
ee1f37 |
</font>
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
|
|
|
ee1f37 |
</body>
|
|
|
ee1f37 |
</html>
|