| <sect1 id="repository-history-2012"> |
| |
| <title>2012's</title> |
| |
| <para> |
| &TCAR; development was eventually stopped at November 2011 |
| until July 2012 when we needed to make the |
| <command>centos-art.sh</command> script a bit more |
| customizable than it presently was. For example, it was |
| considered as a need that functionalities inside the |
| <command>centos-art.sh</command> script must be not just |
| conceived independent one another but reusable in different |
| contexts as well. |
| </para> |
| |
| <simplesect id="repository-history-2012-UpdateLocales"> |
| |
| <title>Make Localization Of <command>centos-art.sh</command> |
| Script Specific To Different Contexts</title> |
| |
| <para> |
| The procedure used to locale messages inside the |
| <command>centos-art.sh</command> script had to be re-designed |
| in order to accept such pluggable behavior into the script. We |
| couldn't publish unique <filename>centos-art.sh.po</filename> |
| and <filename>centos-art.sh.mo</filename> files because they |
| may contain different information in different contexts. For |
| example, if you are using the <function>render</function> and |
| <function>help</function> 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. |
| </para> |
| |
| <para> |
| One solution for this could be to have independent PO files |
| for each functionality of <command>centos-art.sh</command> |
| script which are combined to create the final PO and MO files |
| that <application>gettext</application> uses to retrive |
| translated strings when <command>centos-art.sh</command> |
| 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. |
| </para> |
| |
| <note> |
| <para> |
| In case you don't want to be selective and download the whole |
| repository, the creation of the |
| <filename>centos-art.sh.po</filename>, |
| <filename>centos-art.sh.pot</filename> and |
| <filename>centos-art.sh.mo</filename> files will occur |
| automatically the first time you run the |
| <function>prepare</function> functionality (which require the |
| <function>locale</function> functionality to be available), or |
| later, by running the following command: |
| <screen>centos-art locale trunk/Scripts/Bash --update</screen> |
| </para> |
| |
| <para> |
| For more information about the <function>prepare</function> |
| and <function>locale</function> functionalities, see <xref |
| linkend="scripts-bash-locale" /> and <xref |
| linkend="scripts-bash-prepare" /> respectively. |
| </para> |
| |
| </note> |
| |
| <para> |
| As shown in <xref linkend="repository-history-2012-2" />, both |
| <function>Commons</function> and <function>Locales</function> |
| functionalities will always be required directories. The |
| <function>Commons</function> directory contains the common |
| functionalities and the <function>Locales</function> directory |
| contains the standard procedures you need to run in order to |
| build the final <filename>centos-art.sh.mo</filename> file |
| used by <application>gettext</application> to retrive |
| translation strings when the <command>centos-art.sh</command> |
| script is running. Remember that |
| <filename>centos-art.sh.pot</filename>, |
| <filename>centos-art.sh.po</filename> 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. |
| </para> |
| |
| <example id="repository-history-2012-2"> |
| <title>Directory structure of a rendering-only context</title> |
| <screenshot> |
| <screeninfo>Directory structure of a rendering-only context</screeninfo> |
| <mediaobject> |
| <textobject> |
| <programlisting> |
| /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 |
| </programlisting> |
| </textobject> |
| </mediaobject> |
| </screenshot> |
| </example> |
| |
| <para> |
| 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 |
| <command>centos-art.sh</command> script. Your new project |
| requires you to introduce new functionalities to |
| <command>centos-art.sh</command> which don't fit the needs of |
| &TCP; (e.g., you want to introduce a |
| <function>report</function> 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. |
| </para> |
| |
| <para> |
| 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 <xref linkend="repository-history-2012-1" />, we |
| see how the <filename class="directory">Render</filename>, |
| <filename class="directory">Locales</filename> and <filename |
| class="directory">Commons</filename> directories which come |
| from the &TCAR; has been integrated into the working copy of |
| your new project. |
| </para> |
| |
| <example id="repository-history-2012-1"> |
| <title>Mixing automation functionalities.</title> |
| <screenshot> |
| <screeninfo>Mixing automation functionalities.</screeninfo> |
| <mediaobject> |
| <textobject> |
| <programlisting> |
| /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 |
| </programlisting> |
| </textobject> |
| </mediaobject> |
| </screenshot> |
| </example> |
| |
| <para> |
| 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 <function>render</function> |
| functionality from &TCAR;. In this environment, all updates |
| commited to the <filename class="directory">Render</filename>, |
| <filename class="directory">Locales</filename> and <filename |
| class="directory">Commons</filename> 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. |
| </para> |
| |
| <para> |
| 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 |
| <filename>centos-art.sh</filename> and rename it to something |
| else. Later, you need to edit the renamed version and change |
| variables inside according your needs. In <xref |
| linkend="repository-history-2012-1" />, we used the name |
| <command>myapp.sh</command> instead of |
| <command>centos-art.sh</command> 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;. |
| </para> |
| |
| <para> |
| Most of the information you need to change in your duplicated |
| version of <filename>centos-art.sh</filename> 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 |
| <varname>CLI_WRKCOPY</varname> variable inside your duplicated |
| version of <filename>centos-art.sh</filename> to change the |
| absolute path you use to store your working copy. |
| </para> |
| |
| </simplesect> |
| <simplesect> |
| <title>Update DocBook Documentation Structure And Processing</title> |
| <para> |
| ... |
| </para> |
| </simplesect> |
| |
| </sect1> |