Blob Blame History Raw
<sect1 id="scripts-bash-prepare">

    <title>Standardizing Configuration Tasks</title>

    <para>
        The <function>prepare</function> functionality is the
        interface the <command>centos-art.sh</command> script provides
        to standardize the final configuration stuff your workstation
        needs, once the working copy of &TCAR; has been downloaded
        inside it already.
    </para>

    <para>
        Assuming this is the very first time you run the
        <command>centos-art.sh</command> script, you'll find that
        it isn't found in your workstation.  This is correct because
        you haven't created the symbolic link that make it available
        in the execution path, yet. In order to make the
        <command>centos-art.sh</command> script available in the
        execution path of your workstation, you need to run it using
        its absolute path first:
    </para>

    <screen>~/Projects/artwork/trunk/Scripts/Bash/centos-art.sh prepare [OPTIONS]</screen>

    <para>
        Later, once the <command>centos-art.sh</command> script is
        available in the execution path of your system, there is no
        need for you to use the absolute path again.  From this time
        on, you can use the <command>centos-art</command> command-line
        interface directly, as the following example describes:
    </para>

    <screen>centos-art prepare [OPTIONS]</screen>

    <para>
        The <function>prepare</function> functionality accepts the
        following options: 
    </para>

    <variablelist>
    <varlistentry>
    <term><option>--quiet</option></term>
    <listitem>
    <para>
        Supress 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 whould 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>--packages</option></term>
    <listitem>
    <para>
        This option verifies packeges required by
        <command>centos-art.sh</command> script. installs or updates
        required packages. When required packages aren't installed,
        this option uses <command>sudo yum install</command> command
        to perform the installation task. When required packages are
        installed, this option uses <command>sudo yum update</command>
        to update them, if there is any related actualization to be
        applied on. In both cases, it is required that you configure
        the <filename>/etc/sudoers</filename> configuration file
        first.
    </para>

    <important>
    <para>
        To edit the <filename>/etc/sudoers</filename> configuration
        file, do login as <quote>root</quote> first and then, use
        <command>visudo</command> command for edition.
    </para>
    </important>

    <para>
        <xref linkend="scripts-bash-prepare-sudoers" /> illustrates
        the relevant parts you need to change inside the
        <filename>/etc/sudoers</filename> configuration file in order
        for the <function>prepare</function> functionality to be able
        of installing and/or updating the software packages that
        <command>centos-art.sh</command> needs to work. The
        configuration shown in this example assumes you are using
        <quote>centos</quote> as username.
    </para>

    <example id="scripts-bash-prepare-sudoers">
    <title>The <filename>/etc/sudoers</filename> configuration file</title>
    <screenshot>
    <screeninfo><filename>/etc/sudoers</filename> configuration file</screeninfo>
    <mediaobject>
    <textobject>
<programlisting>
## Installation and management of software
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
##      user    MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

## Allow the centos user to run installation and management of
## software anywhere.
centos  ALL=(ALL)       SOFTWARE
</programlisting>
    </textobject>
    </mediaobject>
    </screenshot>
    </example>

    </listitem>
    </varlistentry>

    <varlistentry>
    <term><option>--links</option></term>
    <listitem>
    <para>
        This option maintains the file relation between your working
        copy and configuration files inside your workstation through
        symbolic links. When you provide this option, the
        <command>centos-art.sh</command> puts itself into your
        system's execution path through its command line interface
        <command>centos-art</command> and makes common brushes,
        patterns, palettes and fonts inside the working copy,
        available to applications like GIMP in order for you to make
        use of them without loosing version control over them.
    </para>
    <caution>
    <para>
        This option removes all common fonts, brushes, patterns, and
        palettes currently installed in your home directory, in order
        to create a fresh installation of them all again, using the
        working copy as reference.
    </para>
    </caution>
    </listitem>
    </varlistentry>
    
    <varlistentry>
    <term><option>--images</option></term>
    <listitem>
    <para>
        This option initializes image files inside the working copy.
        When you provide this option, the
        <command>centos-art.sh</command> scripts renders image files
        from all design models available in the working copy. This
        step is required in order to satisfy file dependencies among
        different components inside the working copy.
    </para>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term><option>--manuals</option></term>
    <listitem>
    <para>
       This option initializes documentation files inside the working
       copy. When you provide this option, the
       <command>centos-art.sh</command> script renders all
       documentation manuals from their related source files to
       different output formats, so you can read them nicely.
    </para>
    </listitem>
    </varlistentry>

    <varlistentry>
    <term><option>--environment</option></term>
    <listitem>
    <para>
       Print the name and value of some of the environment variables
       used by <command>centos-art.sh</command> scripts as described
       in <xref linkend="scripts-bash-prepare-envar" />.  
    </para>
    </listitem>
    </varlistentry>
    </variablelist>

    <para>
        When no option is provided to <function>prepare</function>
        functionality, the <command>centos-art.sh</command> script
        uses the <option>--packages</option>,
        <option>--links</option>, <option>--images</option> and
        <option>--manuals</option> options as default behaviour.
        Otherwise, if you provide any option, the
        <command>centos-art.sh</command> script avoids its default
        behaviour and executes the <function>prepare</function>
        functionality as specified by the options you provides.
    </para>

    <para>
        Notice that it is possible for you to execute the
        <function>prepare</function> functionality as much times as
        you need to.  This is specially useful when you need to keep
        syncronized the relation between content produced inside your
        working copy and the applications you use outside it. For
        example, considering you've added new brushes to or removed
        old brushes from your working copy of &TCAR;, the link
        information related to those files need to be updated in the
        <filename class="directory">~/.gimp-2.2/brushes</filename>
        directory too, in a way the addition/deletion change that took
        place in your working copy can be reflected there, as well.
        The same is true for other similar components like fonts,
        patterns and palettes.
    </para>

    <sect2 id="scripts-bash-prepare-envar">
    <title>Environment Variables</title>

    <para>
        There are some environment variables that you can customize to
        fit your personal needs (e.g., default text editor, default
        locale information, default time zone representation, etc.).
        To customize these variables you need to edit your personal
        profile (i.e., <filename
        class="directory">~/.bash_profile</filename>) and set the
        redefinition there.  Notice that you may need to logout and
        then do login again in order for the new variable values to
        take effect.
    </para>

    <sect3>
    <title>Default text editor</title>
    <para>
        The default text editor information is controlled by the
        <envar>EDITOR</envar> environment variable. The
        <command>centos-art.sh</command> script uses the default text
        editor to edit subversion pre-commit messages, translation
        files, documentation files, script files, and similar
        text-based files.
    </para>

    <para>
        If <envar>EDITOR</envar> environment variable is not set,
        <command>centos-art.sh</command> script uses <filename
        class="directory">/usr/bin/vim</filename> as default text
        editor. Otherwise, the following values are recognized by
        <command>centos-art.sh</command> script:

        <itemizedlist>
        <listitem>
        <para>
            <filename class="directory">/usr/bin/vim</filename>
        </para>
        </listitem>

        <listitem>
        <para>
        <filename class="directory">/usr/bin/emacs</filename>
        </para>
        </listitem>

        <listitem>
        <para>
            <filename class="directory">/usr/bin/nano</filename>
        </para>
        </listitem>
        </itemizedlist>

    </para>

    <para>
        If no one of these values is set in the <envar>EDITOR</envar>
        environment variable, the <command>centos-art.sh</command>
        script uses <filename
        class="directory">/usr/bin/vim</filename> text editor, the one
        installed by default in &TCD;. 
    </para>
    </sect3>

    <sect3>
    <title>Default locale information</title>
    <para>
        The default locale information is controlled by the
        <envar>LANG</envar> environment variable. This variable is
        initially set in the installation process of &TCD;,
        specifically in the <emphasis>Language</emphasis> step.
        Generally, there is no need to customize this variable in your
        personal profile. If you need to change the value of this
        environment variable do it through the login screen of GNOME
        Desktop Environment or the
        <command>system-config-language</command> command.
    </para>

    <para>
        The <command>centos-art.sh</command> script uses the
        <envar>LANG</envar> environment variable to determine what
        language to use for printing output messages from the script
        itself, as well as the portable objects locations that need to
        be updated or edited when you localize directory structures
        inside the working copy of &TCAR;.
    </para>
    </sect3>

    <sect3>
    <title>Default time zone representation</title>
    <para>
        The time zone representation is a time correction applied to
        the system time (stored in the BIOS clock) based on your
        country location.  This correction is specially useful to
        distributed computers around the world that work together and
        need to be syncronized in time to know when things happened.
    </para>
    <para>
        &TCAR; is made of one server and several workstations spread
        around the world. In order for all these workstations to know
        when changes in the server took place, it is required that
        they all set their system clocks to use the same time
        information (e.g., through UTC (Coordinated Universal Time))
        and set the time correction for their specific countries in
        the operating system.  Otherwise, it would be difficult to
        know when something exactly happened.
    </para>
    <para>
        Generally, setting the time information is a straight-forward
        task and configuration tools provided by &TCD; do cover time
        correction for most of the countries around the world.
        However, if you need a time precision not provided by any of
        the date and time configuration tools provided by &TCD; then,
        you need to customize the <envar>TZ</envar> environment
        variable in your personal profile to correct the time
        information by yourself.  The format of <envar>TZ</envar>
        environment variable is described in <code>tzset(3)</code>
        manual page.  
    </para>
    </sect3>

    </sect2>

</sect1>