tds: Scripts

 
 3.6 Scripts
 ===========
 
 The top-level `scripts' directory is for platform-independent
 executables, such as Perl, Python, and shell scripts, and Java class
 files.  Subdirectories under `scripts' are package names.  This eases
 creating distributions, by providing a common place for such
 platform-independent programs.
 
    The intent is not for all such directories to be added to a user's
 command search path, which would be quite impractical.  Rather, these
 executables are primarily for the benefit of wrapper scripts in whatever
 executable directory a distribution may provide (which is not specified
 by the TDS).
 
    Truly auxiliary scripts which are invoked directly by other programs,
 rather than wrapper scripts, may also be placed here.  That is,
 `scripts' also serves as a platform-independent analog of the standard
 Unix `libexec' directory.
 
    We recommend using extensions specifying the language (such as
 `.pl', `.py', `.sh') on these files, to help uniquely identify the
 name.  Since the intent of the TDS is for programs in `scripts' not to
 be invoked directly by users, this poses no inconvenience.
 
    For example, in the TeX Live distribution, the ConTeXt user-level
 program `texexec' can exist as a small wrapper script in each
 `bin/PLATFORM/texexec' (which is outside the `texmf' tree), which
 merely finds and calls `texmf/scripts/context/perl/texexec.pl'.
 
    Examples:
      scripts/context/perl/texexec.pl
      scripts/context/ruby/examplex.rb
      scripts/thumbpdf/thumbpdf.pl
 
    The TDS does not specify a location for platform-dependent binary
 executables, whether auxiliary or user-level.