<sect1 id="scripts-bash-render">
<title>Standardizing Rendition Tasks</title>
<indexterm type="specific-function">
<primary>render</primary>
</indexterm>
<para>
The <function>render</function> functionality is the interface
the <command>centos-art.sh</command> script provides to
standardize the content production tasks inside the working
copy.
</para>
<simplesect id="script-bash-render-syntax">
<title>Syntax</title>
<screen>centos-art render [OPTIONS] [DIRECTORY]</screen>
<para>
The <varname>DIRECTORY</varname> parameter specifies the
directory path, inside the working copy of &TCAR;, where the
files you want to process are stored in. This paramter can be
provided more than once in order to process more than one
directory path in a single command execution. When this
parameter is not provided, the current directory path where
the command was called from is used instead.
</para>
</simplesect>
<simplesect id="script-bash-render-option">
<title>Options</title>
<para>
The <function>render</function> functionality accepts the
following options:
</para>
<variablelist>
<varlistentry>
<term><option>--quiet</option></term>
<listitem>
<para>
This option supresses all output messages except error
messages. When this option is passed, all confirmation
requests are supressed and a possitive answer is assumed for
them, just as if the <option>--answer-yes</option> option
would have been provided.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--answer-yes</option></term>
<listitem>
<para>
Assume <emphasis>yes</emphasis> to all confirmation requests.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--filter="REGEX"</option></term>
<listitem>
<para>
This option reduces the list of files to process inside
<varname>DIRECTORY</varname> using <varname>REGEX</varname> as
pattern. You can use this option to control the amount of
files you want to render. The deeper you go into the
directory structure the more specific you'll be about the
files you want to render. When you cannot go deeper into the
directory structure through <varname>DIRECTORY</varname>
specification, use this option to reduce the list of files
therein.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--sync-changes</option></term>
<listitem>
<para>
Synchronizes available changes between the working copy and
the central repository.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--releasever="NUMBER"</option></term>
<listitem>
<para>
This option expands the <code>=\RELEASE=</code>,
<code>=\MAJOR_RELEASE=</code>, and
<code>=\MINOR_RELEASE=</code> translation makers based on
<varname>NUMBER</varname> value. Notice that translation
markers here were escaped using a backslash (<code>\</code>)
in order to prevent their expansion. Use this option when you
need to produce release-specific contents, but no release
information can be retrived from the directory path you are
currently rendering.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--basearch="ARCH"</option></term>
<listitem>
<para>
This option expands the <code>=\ARCHITECTURE=</code>,
translation makers based on <varname>ARHC</varname> value.
Notice that translation markers here were escaped using a
backslash (<code>\</code>) in order to prevent their
expansion. Use this option when you need to produce
architecture-sepecific contents but no architecture
information can be retrived from the directory path you are
currently rendering.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--theme-model="NAME"</option></term>
<listitem>
<para>
This option specifies the name of theme model you want to use
when producing theme artistic motifs. By default, if this
option is not provided, the <literal>Default</literal> theme
model is used as reference to produce theme artistic motifs.
To know what values does the <varname>NAME</varname> variable
can have, run <command>ls
~/artwork/trunk/Identity/Models/Themes</command> command.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--post-rendition="COMMAND"</option></term>
<listitem>
<para>
This option lets you apply a command as post-rendition action.
In this case, the <varname>COMMAND</varname> represents the
command-line you want to execute in order to perform in-place
modifications to base-rendition output.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--last-rendition="COMMAND"</option></term>
<listitem>
<para>
This option lets you apply a command as last-rendition action.
In this case, the <varname>COMMAND</varname> argument
represents the command string you want to execute in order to
perform in-place modifications to base-rendition,
post-rendition and directory-specific rendition outputs.
</para>
</listitem>
</varlistentry>
</variablelist>
</simplesect>
<simplesect id="script-bash-render-description">
<title>Description</title>
<para>
Inside the working copy of &TCAR;, rendition tasks take place
inside renderable directories. The rendition itself is
performed through a serie of rendition flows named
base-rendition, post-rendition, last-rendition and
directory-specific rendition.
</para>
<para>
Renderable directories are convenctional locations inside the
working copy where you can find source files, output files and
auxiliar files. Source files are used to produce output files.
Auxiliar files are used to modify the way output files are
produced from source files (e.g., to produce localized
output). Auxiliar files are optionals.
</para>
<para>
Renderable directories are made of several directories but
only the output dirctory path is passed to
<function>render</function> functionality as
<varname>DIRECTORY</varname> parameter in the command-line.
The directories related to source and auxiliar files are
automatically constructed based on a directory organization
convenction. This way, the <function>render</function>
functionality collects all the information it needs to work
with.
</para>
<para>
Inside the working copy, renderable directories are divided in
two categories in a way differences between them can be
preserved. These categories are named <quote>direct
production</quote> and <quote>theme production</quote>. These
categories provide the file organization convenction the
<function>render</function> functionality needs, to produce
content based on rendition flows.
</para>
<para>Direct Production </para>
<para>Theme Production</para>
<para>Base Rendition Flow</para>
<para>Post Rendition Flow</para>
<para>Last Rendition Flow</para>
<para>Directory-Specific Rendition Flow</para>
</simplesect>
<simplesect id="script-bash-render-environment">
<title>Function Specific Environment</title>
<para>
...
</para>
</simplesect>
<simplesect id="scripts-bash-render-authors">
<title>Authors</title>
<para>
The following people have worked in the
<function>render</function> functionality:
</para>
<itemizedlist>
<listitem>
<para>
Alain Reguera Delgado <<ulink url="mailto:alain.reguera@gmail.com">alain.reguera@gmail.com</ulink>>, =COPYRIGHT_YEAR_LIST=
</para>
</listitem>
</itemizedlist>
</simplesect>
<simplesect id="scripts-bash-render-licence">
<title>License</title>
<para>
Copyright © =COPYRIGHT_YEAR_LIST= The CentOS Project
</para>
<para>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
</para>
<para>
This program is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more details.
</para>
<para>
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
USA.
</para>
</simplesect>
</sect1>