cgal/Packages/Manual/scripts
Sylvain Pion 35c4f5fe37 - Remove one cruft from "Handle and Circulators" kludge in one script. 2004-01-08 16:27:15 +00:00
..
README
autotest_cgal_manual
backslash_grep
bibmerge
clean_start
copy_log_files
create_package_table
create_test_page
doublenames
driver
driver_html
driver_tex
gif_grep
install_manual_files
link_html_wrapper
make_AllMains
make_docdirs
make_new_bib_file
ref_grep
rmbibcomments
test_driver
test_html
test_tex
to_dvi
to_html
to_html_w_parts
to_pdf
to_postscript
to_postscript_letter

README

autotest_cgal_manual
   Purpose: Shell script for automatically running the test suite for the 
            manuals.  Copies the doc_tex files to the manual test directory
            (given in the script) and then runs the test and installs the 
            results.

   Usage:   autotest_cgal_manual <CGAL-release-num>

backslash_grep
   Purpose:  Used to check if the html files contain any backslashes, which
             often indicates a raw formatting command that didn't get
             translated by the cc_manual_to_html program.

   Usage:    backslash_grep [d1 d2 ...]

             If no argument is given, the default is to grep all html files
             in the current directory and all subdirectories.  Otherwise,
             only the html files in subdirectories given as arguments are
             searched.

bibmerge 
   Purpose: Perl script for merging .bib files, names of which are provided
            on the command line.

            Ouptut is sent to standard output and duplicate entries are 
            removed.

   Usage:   bibmerge bibfiles
  
clean_start 
   Purpose: for directories that have subdirectories (names of which are 
            provided in the file <subdir>/'docdirs') creates a new AllMains.tex 
            file and in each subdirectory named in 'docdirs' adds a link
            to ./html_wrapper.

   Usage:   clean_start [d1 d2 ...]
 
            If a list of directory names is provided on the command line,
            only those will be "cleaned".  

            If directory names are not provided on the command line then
              -- if the directory from which this is run contains a wrapper.tex 
                 file, it is assumed that this directory is the one to clean
              -- if the directory contains no wrapper.tex file but a docdirs 
                 file then the directories named in the docdirs file are assumed
                 to be the ones to clean
              -- otherwise, nothing is done


copy_log_files

   Purpose: to copy the log files created from the test_html and test_tex
            scripts to the location of the manual test web pages

   Usage:   copy_log_files <destination>

            if the current directory contains no docdirs file, nothing will
            be copied, otherwise the log files from all directories listed
            in docdirs will be copied.

create_package_table:

   Purpose:  create the table entries for a part of the manual with 
             sub-parts (packages).  Prints the output to standard output.

   Usage:    create_package_table [d1 d2 ...]

            If directory names are provided on the command line, use these as 
            the directories for which test results are prepared.  Otherwise, 
            when in a directory that contains a wrapper.tex file and a docdirs 
            file assume this is the directory to work in.  If the current 
            directory contains no wrapper.tex file but a docdirs file, this 
            indicates that a page should be created for the test results of 
            all subdirectories named in docdirs.

create_test_page

   Purpose:  create a WWW page of test results for the manual

             The name of the WWW page is composed from the version name
             supplied on the command line and the suffix '.manual_test.html'

   Usage:    create_test_page <version_name> <target_dir>

             <version_name> should be something like CGAL-2.1-I-27 and
             <target_dir> should be the directory where the log files linked
             from the web page will be stored.

doublenames

   Purpose:  Determines if there are duplicate file names in a set of
             subdirectories provided either on the command line or in
             the file docdirs.  (??? I'm not sure why this is needed. ???)

   Usage:    double_names [d1 d2 ...]

driver

   Purpose:  Script for creating the postscript and html manuals

   Usage:    driver [d1 d2 ...]

             If no argument is given, the default is to create the manual
             for all subdirectories listed in the file 'docdirs'.  Otherwise,
             only those subdirectories given as arguments are used.
   
driver_html

   Purpose:  Script for creating the html manuals

   Usage:    driver_html [d1 d2 ...]

             If no argument is given, the default is to create the manual
             for all subdirectories listed in the file 'docdirs'.  Otherwise,
             only those subdirectories given as arguments are used.

driver_tex

   Purpose:  Script for creating the postscript manuals

   Usage:    driver_tex [d1 d2 ...]

             If no argument is given, the default is to create the manual
             for all subdirectories listed in the file 'docdirs'.  Otherwise,
             only those subdirectories given as arguments are used.
gif_grep

   Purpose:  Used to check if the pictures (gif files) linked in the manual
             are in their proper places.  Creates a web page that contains 
             the result of a grep for "gif" in each html file.  In most 
             cases, this grep provides enough information so the page contains
             simply pictures or "broken picture" icons.

   Usage:    gif_grep [d1 d2 ...]

             If no argument is given, the default is to grep all html files
             in the current directory and all subdirectories.  Otherwise,
             only the html files in subdirectories given as arguments are 
             searched.

install_manual_files

   Puprose: Creates a directory for running the manual test suite (or manual
            creation) scripts by copying the "skeleton" of the manual from
            the directory doc_tex_skel and the "body" of the manual (stuff
            submitted with packages) from the CGAL_autotest directory
            (The exact location of this is specified by the variable SOURCE_DIR 
            in the script.) and then rearranging and editing some of the files 
            to put them in their proper places and states.

   Usage:  install_manual_files <version> 

           where <version> is something line 2.1-I-17

           This script must be used in a directory that has doc_tex_skel as
           a subdirectory.  It creates a directory called CGAL-<version>_doc_tex
           in the current directory.

link_html_wrapper

   Purpose: creates a link to the file html_wrapper in the current directory
            in each "package" subdirectory.

   Usage:   link_html_wrapper [d1 d2 ...]

            If a list of directories is provided on the command line, only
            those directories will have links created for them.  Otherwise
            if this directory contains a wrapper.tex file then this is the
            directory whose subdirectories (as listed in the file docdirs)
            will have links established.  If there is no wrapper.tex file but
            there is a docdirs file, then for each subdirectory listed in 
            docdirs that in turn contains a docdirs file, links will be 
            established in the subsubdirectories.
   
make_AllMains

   Purpose:  create the file AllMains.tex that is included with an 
             \input{AllMains} command in a wrapper.tex file for a directory
             with subdirectories for different parts of the manual.  

   Usage:    make_AllMains [d1 d2 ...]

             if a list of directories is provided on the command line, only
             those directories will possibily have a AllMains.tex file created.
             Otherwise, if this directory has a wrapper.tex file, it is 
             assumed that this is the directory to possibly create the AllMains
             file for.  If this directory does not contain a wrapper.tex file
             but does contain a docdirs file, then each of the directories 
             listed in docdirs will possibly have an AllMains.tex file created.

             In any case, an AllMains.tex file is created only for directories
             that also contain docdir files.

make_docdirs

   Purpose:  creates a new 'docdirs' file by looking in the current directory
             for all subdirectories that contain a main.tex file

   NOTE:     Since the ordering of the subdirectory names in the docdirs file
             determines the order of the chapters in the manual (since this
             file is used by clean_start to create the AllMains.tex) THIS 
             MACRO SHOULD BE USED SPARINGLY.

   Usage:    make_docdirs

make_new_bib_file

   Purpose:  create a new cgal-manual.bib file by merging the cgal.bib files
             in various subdirectories, removing duplicate entries and all
             comments.

   Usage:    make_new_bib_file [d1 d2 ...]

             if a list of directories is provided on the command line, only
             those directories will contribute to the new cgal-manual.bib file.
             Otherwise, if this directory has a wrapper.tex file, it is 
             assumed that the cgal.bib files from the subdirectory of this
             directory will be used in the merge.  If this directory does not 
             contain a wrapper.tex file but does contain a docdirs file, then 
             each of the directories listed in docdirs will possibly contribute
             to the new cgal-manual.bib (either directly or through their
             subdirectories).
   
ref_grep
   Purpose:  Used to check if the html files contain any unresolved references
             that appear in the form [ref:???].  This usually indicates that
             the label referred to at this point in the text was not defined.

   Usage:    ref_grep [d1 d2 ...]

             If no argument is given, the default is to grep all html files
             in the current directory and all subdirectories.  Otherwise,
             only the html files in subdirectories given as arguments are
             searched.

rmbibcomments
   Purpose:  Perl script that will remove LaTeX comments that start somewhere
             other than the beginning of the line(?) from the input file

   Usage:    rmbibcomments file
   
test_driver
   Purpose:  Script to run the test_html and test_ps scripts for all (or a given
             set of) subdirectories.  Also produces the .ps and .html manuals
             (excluding the subdirectories that failed the tex test)

   Usage:    test_driver [d1 d2 ...]
   
test_html
   Purpose:  Test the conversion of each part of the manual to html. In each
             directory that is tested, a subdirectory html_test is created that
             contains the results.  Log files named to_html.log are created 
             for each individual part and placed in the corresponding 
             subdirectories in html_test.  

   Usage:    test_html [d1 d2 ...]

             If directory names are given on the command line, only those
             will be tested.

             If the current directory has a wrapper.tex file, this is the
             directory that will be tested.

             If this directory has docdirs file, the directories listed in
             this file are tested.

             In each directory to be tested, if a 'docdirs' file exists,
             each of the subdirectories listed there is assumed to specify
             a separate package and is tested separately.
   
test_tex
   Purpose:  Test the conversion of each part of the manual to dvi (using LaTeX
             and makeindex). Into each directory that is tested, two log files 
             are copied: main.log and main.ilg.

   Usage:    test_tex [d1 d2 ...]

             If directory names are given on the command line, only those
             will be tested.

             If the current directory has a wrapper.tex file, this is the
             directory that will be tested.

             If this directory has docdirs file, the directories listed in
             this file are tested.

             In each directory to be tested, if a 'docdirs' file exists,
             each of the subdirectories listed there is assumed to specify
             a separate package and is tested separately.
   
to_dvi
   Purpose:  create a .dvi for a specified set of parts of the manual

   Usage:    to_dvi [d1 d2 ...]
   
             If directory names are provided on the command line, dvi files
             will be created only for those directories, otherwise if this
             directory contains a wrapper.tex file, a dvi file will be created
             for this file.  If this directory does not contain a wrapper.tex
             file but does contain a docdirs file, dvi files will be created for
             each directory listed in the docdirs file.  For subdirectories that
             have a docdirs file, it is first checked if there is a 
             corresponding docdirs_passed_tex file.  If so, only the directories
             that are listed in docdirs_passed_tex are used to create the dvi
             file.  If not (which indicates that a test run has not been made),
             all directories listed in the docdirs file will be used.  For 
             directories without a docdirs file, this has no effect.

             NOTE:  only one run of LaTeX is performed by this script.

to_html
   Purpose: create the .html manual for a specified set of parts of the
            manual

   Usage:   to_html [d1 d2 ...]

            If directory names are provided on the command line, html files
            will be created only for those directories, otherwise if this
            directory contains a wrapper.tex file, html files will be created
            for the files in the current directory.  If this directory does 
            not contain a wrapper.tex file but does contain a docdirs file, 
            html files will be created for each directory listed in the docdirs 
            file.  For subdirectories that have a docdirs file, it is first 
            checked if there is a corresponding docdirs_passed_html file.  If 
            so, only the directories that are listed in docdirs_passed_html 
            are used to create the dvi file.  If not (which indicates that a 
            test run has not been made), all directories listed in the docdirs 
            file will be used.  For directories without a docdirs file, this 
            has no effect.

to_html_w_parts
   Purpose: create a specified set of html manual in which each such manual
            is divided into two parts (user manual and reference manual).
            using the -ref option from cc_manual_to_html

   Usage:   to_html_w_parts [d1 d2 ...]

            Same as for to_html

to_pdf
   Purpose: create the PDF manuals

   Usage:  to_pdf [d1 d2 ...]

           If directory names are provided on the command line, .pdf 
           files will be created only for those directories, otherwise if this
           directory contains a wrapper.tex file, a .pdf file will be 
           created for this file.  If this directory does not contain a 
           wrapper.tex file but does contain a docdirs file, .pdf files 
           will be created for each directory listed in the docdirs file.  

           One has to do a separate run through LaTeX to generate the PDF
           manuals with bookmarks because otherwise the things that are linked 
           via the hyperref package are colored in the PostScript manual as 
           well.

           N.B.  gs version 6.51 works best for the basic library conversion.
                 version 6.50 gives up or segmentation faults or does other 
                 nasty things.
   
to_postscript
   Purpose: create the postscript files for the various parts of the
            manual from the .dvi files

   Usage:  to_postscript [d1 d2 ...]

           If directory names are provided on the command line, .ps files
           will be created only for those directories, otherwise if this
           directory contains a wrapper.dvi file, a .ps.gz file will be created
           for this file.  If this directory does not contain a wrapper.dvi
           file but does contain a docdirs file, .ps.gz files will be created 
           for each directory listed in the docdirs file.  

to_postscript_letter
   Purpose: create the postscript files that will fit on U.S. letter size paper
            for the various parts of the manual from the .dvi files

   Usage:  to_postscript_letter [d1 d2 ...]

           If directory names are provided on the command line, *_letter.ps 
           files will be created only for those directories, otherwise if this
           directory contains a wrapper.dvi file, a _letter.ps file will be 
           created for this file.  If this directory does not contain a 
           wrapper.dvi file but does contain a docdirs file, _letter.ps files 
           will be created for each directory listed in the docdirs file.