2012's
&TCAR; development was eventually stopped at November 2011
until July 2012 when we needed to make the
centos-art.sh script a bit more
customizable than it presently was. For example, it was
considered as a need that functionalities inside the
centos-art.sh script must be not just
conceived independent one another but reusable in different
contexts as well.
Make Localization Of centos-art.sh
Script Specific To Different Contexts
The procedure used to locale messages inside the
centos-art.sh script had to be re-designed
in order to accept such pluggable behavior into the script. We
couldn't publish unique centos-art.sh.po
and centos-art.sh.mo files because they
may contain different information in different contexts. For
example, if you are using the render and
help functionalities you only need
translation messages for them and not those from other
functionalities that may exist in the central repository but
you didn't download nor use into your working copy.
One solution for this could be to have independent PO files
for each functionality of centos-art.sh
script which are combined to create the final PO and MO files
that gettext uses to retrive
translated strings when centos-art.sh
script is running. For this solution to be effective, you must
be selective about the functionalities and locales directories
you download into your working copy. For example, if you want
to use the render functionality and its locale messages only,
you must download the required directories and exclude others.
In case you don't want to be selective and download the whole
repository, the creation of the
centos-art.sh.po,
centos-art.sh.pot and
centos-art.sh.mo files will occur
automatically the first time you run the
prepare functionality (which require the
locale functionality to be available), or
later, by running the following command:
centos-art locale trunk/Scripts/Bash --update
For more information about the prepare
and locale functionalities, see and respectively.
As shown in , both
Commons and Locales
functionalities will always be required directories. The
Commons directory contains the common
functionalities and the Locales directory
contains the standard procedures you need to run in order to
build the final centos-art.sh.mo file
used by gettext to retrive
translation strings when the centos-art.sh
script is running. Remember that
centos-art.sh.pot,
centos-art.sh.po files aren't under
version control and they are built by combining each
funtionality message.po file into a PO and later a MO file.
Directory structure of a rendering-only contextDirectory structure of a rendering-only context
/home/centos/Projects/artwork/trunk/
|-- Locales/
| `-- Scripts/
| `-- Bash/
| `-- es_ES/
| |-- Functions/
| | |-- Commons/
| | | |-- messages.po
| | | `-- messages.pot
| | |-- Locales/
| | | |-- messages.po
| | | `-- messages.pot
| | `-- Render/
| | |-- messages.po
| | `-- messages.pot
| |-- LC_MESSAGES/
| | `-- centos-art.sh.mo
| |-- centos-art.sh.po
| `-- centos-art.sh.pot
`-- Scripts/
`-- Bash/
|-- Functions/
| |-- Commons/
| |-- Locales/
| `-- Render/
`-- centos-art.sh
A practical example of using the solution described above may
be found when you are working on the corporate identity of
&TCP; and then need to start a new corporate identity project
for another organization. You want to keep the directory
structure of &TCAR; and its automation tool, the
centos-art.sh script. Your new project
requires you to introduce new functionalities to
centos-art.sh which don't fit the needs of
&TCP; (e.g., you want to introduce a
report functionality to mesure how much
connect time do you consume through your PPP internface.) or
you just want to keep the directory structure of your new
project as simple as possible.
To go through this it is possible to mix specific parts of
different central repositories into one single working copy.
This is the working copy you'll use to manage your new
project. In , we
see how the Render,
Locales and Commons directories which come
from the &TCAR; has been integrated into the working copy of
your new project.
Mixing automation functionalities.Mixing automation functionalities.
/home/al/Projects/Myapp/trunk/
|-- Locales/
| `-- Scripts/
| `-- Bash/
| `-- es_ES/
| |-- Functions/
| | |-- Commons/ <--| from https://projects.centos.org/svn/artwork/
| | | |-- messages.po
| | | `-- messages.pot
| | |-- Locales/ <--| from https://projects.centos.org/svn/artwork/
| | | |-- messages.po
| | | `-- messages.pot
| | |-- Render/ <--| from https://projects.centos.org/svn/artwork/
| | | |-- messages.po
| | | `-- messages.pot
| | `-- Report/
| | |-- messages.po
| | `-- messages.pot
| |-- LC_MESSAGES/
| | `-- myapp.sh.mo
| |-- myapp.sh.po
| `-- myapp.sh.pot
`-- Scripts/
`-- Bash/
|-- Functions/
| |-- Commons/ <--| from https://projects.centos.org/svn/artwork/
| |-- Locales/ <--| from https://projects.centos.org/svn/artwork/
| |-- Render/ <--| from https://projects.centos.org/svn/artwork/
| `-- Report/
`-- myapp.sh
At this point, your working copy contains files from two
different central repositories. One repository provides the
files of your new organization project and the other one
provides the files related to the render
functionality from &TCAR;. In this environment, all updates
commited to the Render,
Locales and Commons directories at &TCAR;
will be available to you too, the next time you update your
working copy. Likewise, if you change something in any of
these directories and commit your changes, your changes will
be available to poeple working in &TCAR; the next time they
update their working copies.
Understanding the need of mixing different central
repositories into a single working copy is an important step
for reusing the functionalities that come with centos-art.sh
script, but it is not enough if you want to customize the
information produced by it. By default, the centos-art.sh
script uses information related to &TCP;. You probably need to
change this if you are producing images to a different
organization than &TCP;. For example, some of the information
you might need to change would be the copyright holder,
brands, domain names, mailing lists, and so forth. To change
this information you need to duplicate the file
centos-art.sh and rename it to something
else. Later, you need to edit the renamed version and change
variables inside according your needs. In , we used the name
myapp.sh instead of
centos-art.sh so the information we set
inside it could reflect the specific needs that motivated the
creation of a new project without affecting those from &TCP;.
Most of the information you need to change in your duplicated
version of centos-art.sh file is
controlled by a set of read-only variables. You modify these
variables here and they will be available all along the script
execution time. For example, you can change the value of
CLI_WRKCOPY variable inside your duplicated
version of centos-art.sh to change the
absolute path you use to store your working copy.
Enhance The CentOS Logo Construction
The CentOS Logo is made of two different components known as
The CentOS Symbol and The CentOS Type. Presently (at the end
of September), to produce these components, we create one
SVG image for each PNG image we want to
produce, store it in trunk/Identity/Models/Brands/Logos
directory structure and run the command:
centos-art render trunk/Identity/Images/Brands/Logos
This model works and scales well in situations when there
isn't a need to reuse final images among themselves. However,
when you need to reuse images among themselves, a better
solution is required. The goal here would be: don't create
SVG images for PNG images you can build
based on other PNG images.
This might be achieved through one of the following ways:
Create a new specific functionality to achieved the goal.
Needed because the
specific functionality uses SVG files as
reference to build images (i.e., one SVG
image produces one PNG image).
Modify functionality to
work in different modes based on file type or file extension.
The first mode would use SVG files as
reference to build PNG images (just as it was doing so far).
The second mode would use a configuration file named
render.conf as reference inside the
design models directory you want to produce images for so as
to build the related PNG images. In this second case, the
configuration file specifies how final PNG images will be
produced (e.g., by appending or overlapping them one another).
For example, consider the following command-line:
centos-art render trunk/Identity/Images/Brands/Logos
This command should evaluate which type of rendition will be
done, based on whether the source file is a scalable vector
graphic (SVG) or a configuration file. To
make this decision, the centos-art.sh
script looks for SVG files first, and
configuration files later. When SVG files
are found, the centos-art.sh script uses a
list of SVG files and process them one by
one excluding any related configuration file that could exist.
On the other hand, if no SVG file is found
inside the related design model directory structure, the
centos-art.sh script will use the
configuration file with the name
render.conf to create images as specified
inside it. When neither a SVG or a
configuration file is found inside the design model directory
structure, the centos-art.sh script
finishes its execution without any error message. For
example, if no SVG file is found inside
trunk/Identity/Models/Brands/Logos/
directory and the
trunk/Identity/Models/Brands/Logos/images.conf
configuration file exists therein with the following content:
[centos.png]
models = "trunk/Identity/Models/Brands/Symbols/centos-symbol-forlogos.svgz trunk/Identity/Models/Brands/Types/centos.svgz"
formats = "xpm jpg"
heights = "48 78"
fgcolor = "000000 ffffff"
bgcolor = "ffffff-0"
command = "/usr/bin/convert +append"
[centos-artwork.png]
models = "trunk/Identity/Models/Brands/Symbols/centos-symbol-forlogos.svgz trunk/Identity/Models/Brands/Types/centos.svgz trunk/Identity/Models/Brands/Types/artwork.svgz"
formats = "xpm jpg"
heights = "48 78"
fgcolor = "000000 ffffff"
bgcolor = "ffffff-0"
command = "/usr/bin/convert +append"
The centos-art.sh script should produce the
following image files:
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/48/centos.jpg
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/48/centos.png
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/48/centos.xpm
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/48/centos-artwork.png
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/48/centos-artwork.jpg
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/48/centos-artwork.xmp
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/78/centos.jpg
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/78/centos.png
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/78/centos.xpm
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/78/centos-artwork.png
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/78/centos-artwork.jpg
trunk/Identity/Images/Brands/Logos/000000/ffffff-0/78/centos-artwork.xmp
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos.jpg
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos.png
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos.xpm
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos-artwork.png
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos-artwork.jpg
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/48/centos-artwork.xmp
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos.jpg
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos.png
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos.xpm
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos-artwork.png
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos-artwork.jpg
trunk/Identity/Images/Brands/Logos/ffffff/ffffff-0/78/centos-artwork.xmp
The final location for storing images output inside the
repository is determined by using the design model directory
provided as argument. Basically, the
centos-art.sh script changes the path
components from Models to Images and adds foreground color,
background color, height value and image name to it to
differentiate rendered images.
In case you need to restrict the amount of files you want to
produce including their formats, heights, colors and commands,
you need to modify the content of the related
render.conf configuration file. There is
not any command-line option available for such tasks. The most
command-line options can do for you is when there are more
than one configuration file inside the same design model
directory and you need to specify which one of them will be
used as reference. In such case you can use the
option.
When images are produced through configuration files, the
centos-art.sh script takes the order
provided in the list of design models to build the list of
images you will work with through the command specified. For
example, the order in which images will be appended or
overlapped.
Localization of logo images will not be and must not be
supported in any way. That would bring disastrous confusion in
the area of visual recognition.
Update DocBook Physical Divisions
The main purpose of this update is changing the main physical
division of DocBook documents from entities to XInclude. This
change affects both and
functionalities.
...