#! /bin/sh #+ # # .. program:: project_profile.sh # # .. _project_profile.sh: # # ================================================== # project_profile.sh -- define PROJECT environment # ================================================== # # SYNOPSIS # ======== # # Online usage:: # # $ . ./project_profile.sh -d directory -i indir -o outdir -t tempdir -s saxo_dir # # In ${HOME}/.profile, add the following line:: # # . project_profile.sh -d directory -i indir -o outdir -t tempdir -s saxo_dir # # DESCRIPTION # =========== # # .. option:: -d # .. option:: -i # .. option:: -o # .. option:: -t # .. option:: -s # # define PROJECT environment # # ${PROJECT} is the base directory of tools. # # ${PROJECT_LOG} is the directory where log files will be written. # # ${PROJECT_ID} is the directory where input files must be. # # ${PROJECT_OD} is the directory where output files will be written. # # PATH is completed with ${PROJECT}/src/. # # ${SAXO_DIR} is the base directory of SAXO tools # # IDL_STARTUP is set to tell IDL where find tools. # # FER_GO is completed with ${PROJECT}/src/. # # # SEE ALSO # ======== # # for IDL/gdl and SAXO environment : # # :ref:`project_init.pro` # :ref:`cm_project.pro` # # EXAMPLES # ======== # # For fplod, on aedon.locean-ipsl.upmc.fr:: # # $ cd /usr/home/fplod/incas/tropflux/tropflux_ws/ # $ . ./src/project_profile.sh \ # -d $(pwd) \ # -i /usr/temp/${LOGNAME}/tropflux_d/ \ # -o /usr/temp/${LOGNAME}/tropflux_d/ \ # -t /usr/temp/${LOGNAME}/log/ \ # -s /usr/home/fplod/SAXO_DIR/ # # For fplod on cratos.locean-ipsl.umpc.fr:: # # $ cd ${HOME}/incas/tropflux/tropflux_ws/ # $ . ./src/project_profile.sh \ # -d $(pwd) \ # -i /usr/temp/${LOGNAME}/tropflux_d/ \ # -o /usr/temp/${LOGNAME}/tropflux_d/ \ # -t /usr/temp/${LOGNAME}/log/ \ # -s ${HOME}/SAXO_DIR/ # # For pinsard on camelot.ipsl.polytechnique.fr or merlin15-c.climserv:: # # $ cd ${HOME}/tropflux/ # $ . ./src/project_profile.sh \ # -d $(pwd) \ # -i /homedata/${LOGNAME}/tropflux_d/ \ # -o /homedata/${LOGNAME}/tropflux_d/ \ # -t /homedata/${LOGNAME}/log/ # -s ${HOME}/SAXO_DIR/ # # TODO # ==== # # ++ option bavarde # # ++ machine dependant # # ++ besoin de posix # # ++ pas de MANPATH defini par défaut sur zeus et cerbere # # EVOLUTIONS # ========== # # $Id$ # # - fplod 20110502T155437Z aedon.locean-ipsl.upmc.fr (Darwin) # # * complete FER_GO # # - fplod 20110429T090524Z aedon.locean-ipsl.upmc.fr (Darwin) # # * set IDL_STARTUP # # - fplod 20110413T151541Z cratos.locean-ipsl.upmc.fr (Linux) # # * fix uncompleted replacement SAXO_SRC by SAXO_DIR # # - fplod 20101118T171653Z aedon.locean-ipsl.upmc.fr (Darwin) # # * creation # #- system=$(uname) case "${system}" in AIX|IRIX64) echo " www : no specific posix checking" ;; *) set -o posix ;; esac unset system # LANG=C # # as this script might be launch in .profile, command is forced. command=project_profile.sh # usage=" Usage : ${command} -d directory -i indir -o outdir -t tempdir -s saxo_dir" # set +u while [ ! -z "${1}" ] do case ${1} in -d) # directory for application choosen by user (see svn checkout command used) directory=${2} shift ;; -i) # directory for inputs choosen by user indir=${2} shift ;; -o) # directory for outputs choosen by user outdir=${2} shift ;; -t) # directory for temporary outputs choosen by user tempdir=${2} shift ;; -s) # directory for SAXO tools saxo_dir=${2} shift ;; *) # other choice echo "eee : unknown option ${1}" echo "${usage}" # nb : no exit because this file should be launched by login process ;; esac # next flag shift done unset usage # # check for ${directory} if [ ! -d ${directory} ] then echo " eee : ${directory} not found" # nb : no exit because this file should be launched by login process fi # # check for permission on directory if [ ! -x ${directory} ] then echo " eee : ${directory} not reachable" # nb : no exit because this file should be launched by login process fi # PROJECT=${directory} export PROJECT unset drectory # # add PROJECT tools to PATH # if not already done suppath=$(echo ${PROJECT}/src | tr -s "/") echo ${PATH} | grep -q "${suppath}:" test_path=${?} if [ ${test_path} -ne 0 ] then PATH=${suppath}:${PATH} export PATH else # option bavarde oui/non pas encore implantée ++ echo "${command} : iii : ${suppath} already in \${PATH}" fi unset test_path # # add PROJECT manuals to MANPATH # if not already done suppath=$(echo ${PROJECT}/doc/man | tr -s "/") echo ${MANPATH} | grep -q "${suppath}:" test_manpath=${?} if [ ${test_manpath} -ne 0 ] then MANPATH=${suppath}:${MANPATH} export MANPATH else # option bavarde oui/non pas encore implantée ++ echo "${command} : iii : ${suppath} already in \${MANPATH}" fi unset test_manpath unset suppath # PROJECT_LOG=${tempdir} export PROJECT_LOG unset tempdir if [ ! -d ${PROJECT_LOG} ] then mkdir -p ${PROJECT_LOG} status=${?} if [ ${status} -ne 0 ] then echo "${command} : eee : can not create \${PROJECT_LOG}" # nb : no exit because this file should be launched by login process else echo "${command} : iii : creation of \${PROJECT_LOG}" fi unset status fi # check for permission on PROJECT_LOG if [ ! -x ${PROJECT_LOG} ] then echo " eee : ${PROJECT_LOG} not reachable" # nb : no exit because this file should be launched by login process fi # # check for permission on PROJECT_LOG if [ ! -w ${PROJECT_LOG} ] then echo " eee : ${PROJECT_LOG} not writable" # nb : no exit because this file shouldreachable be launched by login process fi # EDITOR=vi export EDITOR # # io directories PROJECT_ID=${indir} export PROJECT_ID unset indir if [ ! -d ${PROJECT_ID} ] then mkdir -p ${PROJECT_ID} echo "${command} : iii : creation of \${PROJECT_ID}" fi # check for permission on PROJECT_ID if [ ! -x ${PROJECT_ID} ] then echo " eee : ${PROJECT_ID} not reachable" # nb : no exit because this file should be launched by login process fi # PROJECT_OD=${outdir} export PROJECT_OD unset outdir if [ ! -d ${PROJECT_OD} ] then mkdir -p ${PROJECT_OD} echo "${command} : iii : creation of \${PROJECT_OD}" fi # check for permission on PROJECT_OD if [ ! -x ${PROJECT_OD} ] then echo " eee : ${PROJECT_OD} not reachable" # nb : no exit because this file should be launched by login process fi if [ ! -w ${PROJECT_OD} ] then echo " eee : ${PROJECT_OD} not writable" # nb : no exit because this file should be launched by login process fi # # setup for ferret FER_GO="${FER_GO} ${PROJECT}/src" export FER_GO # SAXO_DIR=${saxo_dir} export SAXO_DIR unset saxo_dir # # IDL startup IDL_STARTUP=${PROJECT}/src/project_init.pro export IDL_STARTUP # # end unset command # nb : no exit because this file should be launched by login process