#!/bin/sh #the next variables will be overwritten by the parameters CVSDIR="/cygdrive/d/CGALCVS" MODULES_DIRECTORY="Modules" RELEASE_VERSION="CGAL-3.1-I-XX" RELEASE_NUMBER="100060003" UPDATING="y" INSTALLATION_DIR="/cygdrive/d/CGALCVS/Modules" CREATING_DOC="y" #check the parameters while [ ${#} -gt 0 ]; do case ${*} in -h*|-help*|--help*) printf "usage: create_modules (-h|-help|--help)\n\t-d dir\tSets the CVSDIR directory. The default is /cygdrive/d/CGALCVS.\n\t-m mod\tSets the name of the Modules directory from the Installation package. The default name is Modules.\n\t-r ver\tSets the release version of CGAL which was used to build the modules (eg. CGAL-3.1-I-79).\n\t-n nr\tSets the release number of CGAL (eg. 1003004200).\n\t-u y|n\tSets the updating state. The default is y. If n is specified, the script will no longer update the packages involved.\n\t-i DIR\tSets the installation directory for the modules.\n\t-c y|n\tSets the state of the doc creation process. The default is y. If n is specified, the script will no longer create the doc of the modules.\n" exit ;; -d*) CVSDIR="$2" shift ;; -m*) MODULES_DIRECTORY="$2" shift ;; -r*) RELEASE_VERSION="$2" shift ;; -n*) RELEASE_NUMBER="$2" shift ;; -u*) UPDATING="$2" shift ;; -i*) INSTALLATION_DIR="$2" shift ;; -c*) CREATING_DOC="$2" shift esac shift done printf "Setting CVSDIR=${CVSDIR} ...\n" printf "Setting MODULES_DIRECTORY=${MODULES_DIRECTORY} ...\n" printf "Setting INSTALLATION_DIR=${INSTALLATION_DIR} ...\n" printf "Setting RELEASE_VERSION=${RELEASE_VERSION} ...\n" printf "Setting RELEASE_NUMBER=${RELEASE_NUMBER} ...\n" if [ ! -r ${CVSDIR} ]; then printf "Directory ${CVSDIR} does not exist ... EXITING\n" exit fi #if [ ! -r create_internal_module ]; then # printf "create_internal_module file could not be found ... EXITING\n" # exit #fi cd ${CVSDIR} || return if [ "${UPDATING}" = "y" ]; then if [ -r "Installation" ]; then printf "Updating package Installation to get the modules list ...\n" cvs -q update -P Installation else printf "Checking out package Installation to get the modules list ...\n" cvs co -P Installation fi if [ -r "Scripts" ]; then printf "Updating package Scripts to get the right scripts ...\n" cvs -q update -P Scripts else printf "Checking out package Scripts to get the right scripts ...\n" cvs co -P Scripts fi fi if [ ! -r "${INSTALLATION_DIR}" ]; then mkdir "${INSTALLATION_DIR}" fi for i in `ls Installation/${MODULES_DIRECTORY}/*` do if [ -f "${i}" ]; then MAIN_NAME="`basename ${i}`" printf "\n\nCreating module ${MAIN_NAME}\n" if [ -r "${MAIN_NAME}" ]; then printf " Directory ${MAIN_NAME} exists, removing ...\n" rm -rf ${MAIN_NAME} fi if [ "${UPDATING}" = "y" ]; then for j in `cat ${i}` do if [ -r "${j}" ]; then printf " Updating package ${j} ...\n" cvs -q update ${j} else printf " Check out package ${j} ...\n" cvs co -P ${j} fi done fi ${CVSDIR}/Scripts/developer_scripts/create_internal_module -m ${MAIN_NAME} -r ${RELEASE_VERSION} -n ${RELEASE_NUMBER} -a ${CVSDIR} -p ${i} -s "${CVSDIR}/Scripts/scripts" if [ "${CREATING_DOC}" = "y" ]; then #creating the doc of the module printf "Creating the cgal_manual.tex wrapper for the doc ...\n" #1 creating the cgal_manual.tex wrapper the first part cat <${MAIN_NAME}/doc_tex/cgal_manual.tex % +------------------------------------------------------------------------+ % | cgal_manual.tex % | CGAL User and Reference Manual for all packages % +------------------------------------------------------------------------+ \documentclass{book} \usepackage{cgal_manual} \begin{document} \cgalchapters{ \entryleftright{\part{Basic Library User Manual}} {\part{Reference Manual}} \lcTex{\entryright{\listofrefpages}} EOF #2 creating the second part of the cgal_manual.tex wrapper for k in `ls ${MAIN_NAME}/doc_tex/` do if [ -d ${MAIN_NAME}/doc_tex/${k} ]; then _temp_var=`echo "${k}" | grep "_ref"` if [ -z ${_temp_var} ]; then printf "\t\\packageleftright{${k}}{${k}_ref}\n" >>${MAIN_NAME}/doc_tex/cgal_manual.tex fi fi done #3 creating the 3rd part of the cgal_manual.tex wrapper cat <>${MAIN_NAME}/doc_tex/cgal_manual.tex } \bibliographystyle{alpha} \bibliography{cgal_manual,geom} \printindex \end{document} EOF #end creating the doc of the module if [ -r ~/.autotest_manual_config ]; then printf "running latex ...\n" . ~/.autotest_manual_config _temp_dir=`pwd` cd ${MAIN_NAME}/doc_tex latex cgal_manual.tex bibtex cgal_manual latex cgal_manual.tex latex cgal_manual.tex #xdvi cgal_manual.dvi latex_to_html -o ../doc_html cgal_manual cd ${_temp_dir} else printf "autotest_manual_config WAS NOT found in your HOME directory.\n" fi fi tar -cf "${MAIN_NAME}.tar" ${MAIN_NAME} gzip "${MAIN_NAME}.tar" mv "${MAIN_NAME}.tar.gz" ${INSTALLATION_DIR} rm -rf ${MAIN_NAME} fi done