<section id="repo-convs-relbdirs">
<title>Repository Path Relations</title>
<para>
In order for automation scripts to produce content inside a
working copy of &TCAR;, it is required that all work lines be
related somehow. The automation scripts take the relation
between work lines as reference to determine the place the
information they will work with will be retrieve from (e.g.,
scalable vector graphics, documentation, translations, etc.),
as well as the place where it will store the final files
produced as result of automation process (e.g., portable
network graphics, documentation ready for printing and reading
online, etc.).
</para>
<para>
In order to implement the relation between work lines it is
required to establish a path name convenction, so we can
conceptually organize different components and relate them one
another using predictable path constructions in a scalable
way. Based on this need, we identify three different path
types inside &TCAR;. These path types are: <emphasis>Output
Paths</emphasis>, <emphasis>Input Paths</emphasis>, and
<emphasis>Auxiliary Paths</emphasis>.
</para>
<section id="repo-convs-relbdirs-renderable">
<title>Output Paths</title>
<para>
The output paths point to directories inside the working copy
which contain files produced from files inside the input
paths. For example, the following paths are consider as output
paths:
</para>
<itemizedlist>
<listitem>
<para>
<filename class="directory">trunk/Identity/Images/Brands/</filename>
</para>
</listitem>
<listitem>
<para>
<filename class="directory">trunk/Documentation/Manuals/Tcar-ug/</filename>
</para>
</listitem>
<listitem>
<para>
<filename class="directory">trunk/Identity/Images/Themes/Modern/2/Distro/5/Anaconda/</filename>
</para>
</listitem>
</itemizedlist>
<para>
Output paths are also known as <emphasis><quote>Render-able
Directories</quote></emphasis> because they are the type of
path you should provide as argument to <xref
linkend="scripts-bash-render" /> functionality so as to
produce content through it.
</para>
</section>
<section id="repo-convs-relbdirs-designmodels">
<title>Input Paths</title>
<para>
The input paths point to a directories inside the working copy
which contain files used to produce files inside output paths.
For example, the following paths are considered as input
paths:
</para>
<itemizedlist>
<listitem>
<para>
<filename class="directory">trunk/Identity/Models/Brands/</filename>
</para>
</listitem>
<listitem>
<para>
<filename class="directory">trunk/Documentation/Models/Tcar-ug/</filename>
</para>
</listitem>
<listitem>
<para>
<filename class="directory">trunk/Identity/Models/Themes/Default/Distro/5/Anaconda/</filename>
</para>
</listitem>
</itemizedlist>
</section>
<section id="repo-convs-relbdirs-auxiliar">
<title>Auxiliary Paths</title>
<para>
The auxiliary paths point to directories inside the working
copy which contain files used to create modified instances of
inside input paths which are use in turn to produce files
inside output paths. For example, the following paths are
considered as auxiliary paths:
</para>
<itemizedlist>
<listitem>
<para>
<filename class="directory">trunk/Identity/Images/Brands/</filename>
</para>
</listitem>
<listitem>
<para>
<filename class="directory">trunk/Locales/Documentation/Models/Docbook/Tcar-ug/es_ES/</filename>
</para>
</listitem>
<listitem>
<para>
<filename class="directory">trunk/Locales/Identity/Models/Themes/Default/Distro/5/Anaconda/es_ES/</filename>
</para>
</listitem>
</itemizedlist>
<para>
The relationship between input, output and auxiliary paths is
created by combining the second directory level of input paths
with the second directory level in the repository directory
layout. In the repository directory layout, the second level
includes the <filename
class="directory">trunk/Identity</filename>, <filename
class="directory">trunk/Documentation</filename> and <filename
class="directory">trunk/Scripts</filename> directories. These
directories are always used to create input and output paths.
The <filename class="directory">trunk/Locales</filename>
directory, on the other hand, is always used to create
auxiliary paths only for input paths available under <filename
class="directory">Identity</filename>, <filename
class="directory">Documentation</filename> and <filename
class="directory">Scripts</filename> directories.
</para>
<para>
For example, if the <varname>LANG</varname> environment
variable is set to <quote>es_ES.UTF-8</quote> and you execute
the <xref linkend="scripts-bash-render"/> functionality of
<command>centos-art.sh</command> script with the <filename
class="directory">trunk/Documentation/Manuals/Docbook/Tcar-ug/</filename>
input path as argument, it will produce &TCARUG; in Spanish
language using translation messages from
<filename>trunk/Locales/Documentation/Models/Docbook/Tcar-ug/es_ES/</filename>
auxiliary path and would save final documentation files under
<filename
class="directory">trunk/Documentation/Manuals/Docbook/Tcar-ug/es_ES/</filename>
output path.
</para>
</section>
</section>