Conventions =========== Naming convention for servers ----------------------------- Server names have the form ``purpose[0-9][0-9]{,-test}.psi.ch``, where ``purpose`` is the purpose of the server or the service provided by it. Examples are: - ``puppet01.psi.ch`` is the **productive** puppetmaster - ``repo00-test.psi.ch`` is the **test** Yum repository server When putting system names into configuration files, we always use lower case and the fully qualified domain name. Good: ``puppet01.psi.ch``. Bad: ``puppet01`` or ``PUPPET01.PSI.CH``. Names for programs ------------------ The general conventions regarding filenames apply (see `File system hierarchy and filenames`_). In addition, scripts should not include a suffix indicating the language they are written in. The latter is an implementation detail and does not matter to the caller of the script/program. A good name could be ``pli-system-info``, a bad one would be ``pli-system-info.sh``. File system hierarchy and filenames ----------------------------------- Files should generally be placed where the distribution and/or the `FHS `_ expect them. Deviations and clarifications are documented in this section. The base directory for files is ``/usr`` if the files are relevant to end-users, ``/opt/pli`` if the files are relevant only to Linux administrators. This avoids polluting the PATH for end-users as well as naming conflicts. Executables (scripts or otherwise) that are meant for interactive use should go into ``BASE/bin`` or ``BASE/sbin`` as appropriate. Executables which are primarily called by other executables to implement part of their functionality should be place in ``BASE/libexec``. This avoids polluting ``$PATH``. Files and directories should have names starting with ``pli-`` or be placed in a directory with such a name. This makes it obvious whether a file belongs to an internal package and avoids collisions. Note: this section used to recommend ``psi-`` as the prefix. It turns out that this prefix is being used in various other places already, hence we use ``pli-``, where PLI stands for PSI Linux Infrastructure.