Changeset 12 for modipsl/trunk/util/model
- Timestamp:
- 03/12/07 17:13:47 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
modipsl/trunk/util/model
r2 r12 1 1 #!/bin/ksh 2 #- $Id : model,v 2.8 2005/06/17 11:43:38 adm Exp$2 #- $Id$ 3 3 #--------------------------------------------------------------------- 4 # @(#)Actions relatives aux modeles IPSL4 # @(#)Actions concerning IPSL models 5 5 #--------------------------------------------------------------------- 6 #-7 6 #set -xv 8 7 MAIL_ADDRESS=patricia.cadule@ipsl.jussieu.fr 9 8 MAIL_COM=mail 10 9 #MAIL_COM=Mail 11 #--- ---------------------------------------------------------12 #- D ecomposition du nom d'appel de la procedure (d_n/b_n) ---13 #--- ---------------------------------------------------------14 d_n=$ (dirname $0); b_n=$(basename $0);15 #--- -----------------------------------16 #- Saisie et validation des options ---17 #--- -----------------------------------18 m_n=""; m_a=""; m_v='silencious'; no_tag='false'; 10 #--- 11 #- Dirname and Basename 12 #--- 13 d_n=${0%/*}; b_n=${0##*/}; 14 #--- 15 #- Retrieve and validate the options 16 #--- 17 m_n=""; m_a=""; m_v='silencious'; no_tag='false'; 19 18 while getopts :heudrvH V 20 19 do … … 34 33 done 35 34 shift $(($OPTIND-1)); 36 case ${m_a} in 37 ( checkout | update | diff | remove ) ;; 38 ("") m_a='checkout';; 39 esac 40 #----------------------------- 41 #- Saisie du nom du modele --- 42 #----------------------------- 43 if [ ${#} -gt 1 ]; then 44 echo 'Only one model can be specified' 1>&2; 45 exit 3; 46 elif [ ${#} -eq 1 ]; then 47 m_n="${1}"; 48 elif [ ${m_a} != 'help' ]; then 35 #--- 36 #- Validate the action 37 #--- 38 [[ -z "${m_a}" ]] && { m_a='checkout'; } 39 [[ ${m_a} = help || ${m_a} = checkout || ${m_a} = update || \ 40 ${m_a} = diff || ${m_a} = remove ]] || \ 41 { echo 'Action '"${m_a}"' not supported' 1>&2; exit 4; } 42 #--- 43 #- Retrieve the model name 44 #--- 45 [[ ${#} -gt 1 ]] && \ 46 { echo 'Only one model can be specified' 1>&2; exit 3; } 47 [[ ${#} -eq 1 ]] && { m_n="${1}"; } 48 [[ ${m_a} != 'help' && -z ${m_n} ]] && \ 49 { 49 50 echo 'Model not specified' 1>&2; 50 51 echo 'Try "'${b_n}' -h [model-name]"' 1>&2; 51 52 exit 3; 52 fi 53 #--- --------------------------------------------54 #- Test d'existence du fichier de definition ---55 #--- --------------------------------------------53 } 54 #--- 55 #- Test of presence of the definition file 56 #--- 56 57 F_DEF=${d_n}'/mod.def' 57 [ ! -f "${F_DEF}" ] && { echo "${F_DEF} unreachable ..."; exit 3; } 58 #----------------------------------------------- 59 #- Extraction des noms des modeles supportes --- 60 #----------------------------------------------- 61 QQQ=$(sed -n -e "s/^#-C- *\([^ ]*\).*$/\1/p" ${F_DEF}); 62 qi=0; for i in ${QQQ}; do ((qi=qi+1)); m_x[qi]=${i}; done 63 #------------------------------------------------------------- 64 #- Validation du nom du modele et saisie des informations --- 65 #------------------------------------------------------------- 66 [ '\?'"${m_n}" != '\?' ] && \ 58 [[ ! -f "${F_DEF}" ]] && { echo "${F_DEF} unreachable ..."; exit 3; } 59 #--- 60 #- Extract the names of the supported models 61 #--- 62 qi=0; 63 while read v0 v1 v2 64 do 65 [[ -n "${v0}" && "${v0}" = '#-C-' ]] && \ 66 { ((qi=qi+1)); m_x[${qi}]=${v1}; } 67 done <${F_DEF} 68 unset v0 v1 v2; 69 #--- 70 #- Model name validation and data retrieving 71 #--- 72 [[ -n "${m_n}" ]] && \ 67 73 { 74 #- Validate the model name 68 75 i_m=-1; 69 76 qi=0; while (( ${qi} < ${#m_x[@]} )) 70 77 do 71 78 ((qi=qi+1)); 72 [ ${m_n} = ${m_x[qi]}] && { i_m=${qi}; break; };79 [[ ${m_n} = ${m_x[${qi}]} ]] && { i_m=${qi}; break; }; 73 80 done 74 81 (( ${i_m} < 0 )) && \ 75 82 { echo 'Model '"${m_n}"' unknown' 1>&2; 76 echo 'Try "'${b_n}' -h"' 1>&2; 77 exit 3; } 78 #- Recherche de l'adresse email a qui envoyer les infos 79 QQQ=$(sed -n -e "s/^#-M- *${m_n} *//p" ${F_DEF}); 80 [ '\?'"${QQQ}" = '\?' ] && \ 81 { echo 'Address mail not found for '${m_n}; exit 3; } 82 m_m=${QQQ} 83 #- Recherche des composants 84 QQQ=$(sed -n -e "s/^#-C- *${m_n} *//p" ${F_DEF}); 85 [ '\?'"${QQQ}" = '\?' ] && \ 86 { echo 'Components not found for '${m_n}; exit 3; } 87 qi=0; for i in ${QQQ}; do ((qi=qi+1)); m_c[qi]=${i}; done 88 #- Recherche des tags 89 QQQ=$(sed -n -e "s/^#-T- *${m_n} *//p" ${F_DEF}); 90 [ '\?'"${QQQ}" = '\?' ] && \ 91 { echo 'Tags not found for '${m_n}; exit 3; } 92 qi=0; for i in ${QQQ} 93 do 94 ((qi=qi+1)); 95 if [ ${no_tag} = 'false' ]; then 96 m_t[qi]=${i}; 97 else 98 m_t[qi]='?' 99 fi 100 done 101 #- Recherche des serveurs CVS 102 QQQ=$(sed -n -e "s/^#-I- *${m_n} *//p" ${F_DEF}); 103 [ '\?'"${QQQ}" = '\?' ] && \ 104 { echo 'Indexes not found for '${m_n}; exit 3; } 105 qi=0; for i in ${QQQ} 83 echo 'Try "'${b_n}' -h"' 1>&2; exit 3; } 84 #- Extract the repository informations 85 #- ( index, repository system, servers address ) 86 while read v0 v1 v2 v3 106 87 do 107 ((qi=qi+1)); 108 QQS=$(sed -n -e "s/^#-S- *${i} *//p" ${F_DEF}); 109 [ '\?'"${QQS}" = '\?' ] && \ 110 { echo 'Server number '${i}' not found'; exit 3; } 111 m_s[qi]=${QQS}; 112 done 113 #- Recherche des directories 114 QQQ=$(sed -n -e "s/^#-D- *${m_n} *//p" ${F_DEF}); 115 [ '\?'"${QQQ}" = '\?' ] && \ 88 [[ -n "${v0}" && "${v0}" = '#-S-' ]] && \ 89 { r_p[${v1}]=${v2}; r_s[${v1}]=${v3}; } 90 done <${F_DEF} 91 unset v0 v1 v2 v3; 92 #- Extract the model informations 93 while read v0 v1 v2 94 do 95 [[ -n "${v1}" && "${v1}" = "${m_n}" ]] && \ 96 { 97 #- model manager email address 98 [[ "${v0}" = '#-M-' ]] && { m_m=${v2}; continue; } 99 #- model components 100 [[ "${v0}" = '#-C-' ]] && \ 101 { 102 qi=0; 103 for i in ${v2}; do ((qi=qi+1)); m_c[${qi}]=${i}; done; 104 continue; 105 } 106 #- model tags 107 [[ "${v0}" = '#-T-' ]] && \ 108 { 109 qi=0; 110 for i in ${v2} 111 do 112 ((qi=qi+1)); 113 [[ ${no_tag} = 'false' ]] && \ 114 { m_t[${qi}]=${i}; } || \ 115 { m_t[${qi}]='?'; } 116 done 117 continue; 118 } 119 #- model repository information indexes 120 [[ "${v0}" = '#-I-' ]] && \ 121 { 122 qi=0; 123 for i in ${v2} 124 do 125 ((qi=qi+1)); 126 m_p[${qi}]=${r_p[${i}]}; 127 [[ ${m_p[${qi}]} = svn || ${m_p[${qi}]} = cvs ]] || \ 128 { 129 echo 'System '"${m_p[${qi}]}"' not supported' 1>&2; 130 exit 3; 131 } 132 m_s[${qi}]=${r_s[${i}]}; 133 [[ -z "${m_s[${qi}]}" ]] && \ 134 { 135 echo 'Server '${i}' not found for '${m_n}; 136 exit 3; 137 } 138 done 139 continue; 140 } 141 #- model installation directories 142 [[ "${v0}" = '#-D-' ]] && \ 143 { 144 qi=0; 145 for i in ${v2}; 146 do 147 ((qi=qi+1)); 148 m_d[${qi}]=${i}; 149 [[ -z "${m_l[${qi}]}" ]] && { m_l[${qi}]="modeles"; } 150 done 151 continue; 152 } 153 #- model working local directories 154 [[ "${v0}" = '#-L-' ]] && \ 155 { 156 qi=0; 157 for i in ${v2}; 158 do 159 ((qi=qi+1)); 160 m_l[${qi}]=${i}; 161 done 162 continue; 163 } 164 } 165 done <${F_DEF} 166 unset v0 v1 v2 167 #- Validate the model informations 168 #- model manager email address 169 [[ -z "${m_m}" ]] && \ 170 { echo 'Manager email address not found for '${m_n}; exit 3; } 171 #- model components 172 [[ ${#m_c[@]} = 0 ]] && \ 173 { echo 'Components not found for '${m_n}; exit 3; } 174 #- model tags 175 [[ ${#m_t[@]} = 0 ]] && \ 176 { echo 'Tags not found for '${m_n}; exit 3; } 177 #- model repository information indexes 178 [[ ${#m_p[@]} = 0 || ${#m_s[@]} = 0 ]] && \ 179 { echo 'Indexes not found for '${m_n}; exit 3; } 180 #- model installation directories 181 [[ ${#m_d[@]} = 0 ]] && \ 116 182 { echo 'Target Directories not found for '${m_n}; exit 3; } 117 qi=0; for i in ${QQQ}; do ((qi=qi+1)); m_d[qi]=${i}; m_l[qi]="modeles"; done 118 #- Recherche des local directories 119 QQQ=$(sed -n -e "s/^#-L- *${m_n} *//p" ${F_DEF}); 120 [ '\?'"${QQQ}" = '\?' ] || \ 121 qi=0; for i in ${QQQ}; do ((qi=qi+1)); m_l[qi]=${i}; done 183 #- model working local directories 184 # N/A 122 185 } 123 #--- -------------------------------------------------------------124 # envoi d'un mail si c'est la premiere fois qu on utilisemodipsl125 # ie directory ~/.modipsl donot exist126 #--- -------------------------------------------------------------186 #--- 187 #- send an email at the first use of modipsl 188 #- ie directory ~/.modipsl does not exist 189 #--- 127 190 D_LOG=${HOME}/.modipsl 128 [ -d "${D_LOG}" ] || { mkdir "${D_LOG}" ; echo `date +"%D %T"` `whoami` `uname -m` first usage of model | ${MAIL_COM} -s "first usage of modipsl" ${MAIL_ADDRESS} >/dev/null 2>&1 ; echo `date +"%D %T"` creation >"${D_LOG}"/first ; } 129 #-------------------------- 130 #- Traitement du "help" --- 131 #-------------------------- 132 if [ ${m_a} = 'help' ]; then 191 [[ -d "${D_LOG}" ]] || \ 192 { 193 mkdir "${D_LOG}"; 194 echo $(date +"%D %T") $(whoami) $(uname -m) \ 195 first use of model | \ 196 ${MAIL_COM} -s "first use of modipsl" \ 197 ${MAIL_ADDRESS} >/dev/null 2>&1; 198 echo $(date +"%D %T") creation >"${D_LOG}"/first; 199 } 200 #--- 201 #- "help" action 202 #--- 203 [[ ${m_a} = 'help' ]] && \ 204 { 133 205 echo ' '; 134 if [ '\?'"${m_n}" = '\?' ]; then 206 if [ -z "${m_n}" ]; then 207 echo ${b_n} 'extracts the components of a model'; 208 echo ' '; 135 209 echo 'Usage :'; 136 210 echo ${b_n} '[-h]'; … … 140 214 echo 'h model-name : help on model'; 141 215 echo 'e/u/d/r : extract/update/diff/remove model'; 142 echo 'H : suppres es the tags and takesthe HEAD version';216 echo 'H : suppress the tags and take the HEAD version'; 143 217 echo 'v : verbose mode'; 144 218 echo 'Defaults : -e'; … … 146 220 echo 'model_name in :'; 147 221 qi=0; while (( ${qi} < ${#m_x[@]} )); 148 do ((qi=qi+1)); echo ${m_x[ qi]}; done222 do ((qi=qi+1)); echo ${m_x[${qi}]}; done 149 223 else 150 echo ' Modele: '${m_n};224 echo 'model : '${m_n}; 151 225 echo ' '; 152 sed -n -e "s/^#-H- *${m_n} *//p" ${F_DEF}; 226 while read v0 v1 v2 227 do 228 [[ -n "${v0}" && "${v0}" = '#-H-' && \ 229 -n "${v1}" && "${v1}" = "${m_n}" ]] && { echo ${v2}; } 230 done <${F_DEF} 231 unset v0 v1 v2; 232 echo ' '; 233 echo 'model manager email address : '${m_m}; 153 234 echo ' '; 154 235 qi=0; while (( ${qi} < ${#m_c[@]} )) 155 236 do 156 237 ((qi=qi+1)); 157 echo 'Component '${qi}' : '${m_c[qi]}; 158 echo 'Tag '${qi}' : '${m_t[qi]}; 159 echo 'Server '${qi}' : '${m_s[qi]}; 160 echo 'Directory '${qi}' : '${m_d[qi]}; 161 echo 'Local Dir '${qi}' : '${m_l[qi]}; 238 echo 'Component '${qi}' : '${m_c[${qi}]}; 239 echo 'Tag '${qi}' : '${m_t[${qi}]}; 240 echo 'System '${qi}' : '${m_p[${qi}]}; 241 echo 'Server '${qi}' : '${m_s[${qi}]}; 242 echo 'Directory '${qi}' : '${m_d[${qi}]}; 243 echo 'Local Dir '${qi}' : '${m_l[${qi}]}; 162 244 done 163 245 fi 164 246 echo ' '; 165 247 exit 0; 166 fi 167 #--- -------------------------------------------------------168 # enregistrement de la commande dans une log169 #--- -------------------------------------------------------248 } 249 #--- 250 #- Record information about the action in the "log" file 251 #--- 170 252 F_LOG=${d_n}'/log' 171 253 echo "${F_LOG}" 172 echo `date +"%D %T"`$0 $* >>"${F_LOG}"173 #--- ----------174 #- V ERBOSE ---175 #--- ----------254 echo $(date +"%D %T") $0 $* >>"${F_LOG}" 255 #--- 256 #- Verbose mode 257 #--- 176 258 [ ${m_v} = 'verbose' ] && \ 177 259 { echo '--- Model : '${m_n}; 178 260 echo '--- Action : '${m_a}; 179 261 echo '--- Mode : '${m_v}; } 180 #--- ------------------------------------------181 #- record in F_LOG file model information ---182 #--- ------------------------------------------262 #--- 263 #- Record information about the action in the "log" file 264 #--- 183 265 { echo '--- Model : '${m_n}; 184 266 echo '--- Action : '${m_a}; 185 echo '--- Mode : '${m_v}; 267 echo '--- Mode : '${m_v}; 186 268 echo '--- Mail address : '${m_m}; } >>"${F_LOG}" 187 #----------------------------------------- 188 #- Repertoire d'accueil des composants --- 189 #----------------------------------------- 190 ###d_m=${d_n}'/../modeles'; 191 d_m=${d_n}'/../'; 192 #-------------------------------------------------------------------- 193 #- Envoi d'un mail la premiere fois qu on appelle model de ce modele 194 #- ie file ~/.modipsl/log.${m_n} 195 #-------------------------------------------------------------------- 269 #--- 270 #- Components root directory 271 #--- 272 d_m=${d_n}'/..'; 273 #--- 274 #- send an email at the first use of this IPSL model 275 #- ie file ~/.modipsl/log.${m_n} does not exist 276 #--- 196 277 M_LOG=${D_LOG}/log.${m_n} 197 [ -f "${M_LOG}" ] || { echo `date +"%D %T"` `whoami` `uname -m` first usage of model ${m_n} | ${MAIL_COM} -s "first usage of model ${m_n}" ${m_m} >/dev/null 2>&1 ; echo `date +"%D %T"` model ${m_n} >"${M_LOG}" ; } 198 #------------------------------- 199 #- Extraction des composants --- 200 #------------------------------- 278 [[ -f "${M_LOG}" ]] || \ 279 { 280 echo $(date +"%D %T") $(whoami) $(uname -m) \ 281 first usage of model ${m_n} | \ 282 ${MAIL_COM} -s "first usage of model ${m_n}" \ 283 ${m_m} >/dev/null 2>&1; 284 echo $(date +"%D %T") model ${m_n} >"${M_LOG}"; 285 } 286 #--- 287 #- Extract the model components 288 #--- 201 289 qi=0; while (( ${qi} < ${#m_c[@]} )) 202 290 do 203 ((qi=qi+1)); zc=${m_c[qi]}; zt=${m_t[qi]}; zs=${m_s[qi]}; zd=${m_d[qi]}; zl=${m_l[qi]}; 204 [ ${m_v} = 'verbose' ] && \ 291 ((qi=qi+1)); 292 zc=${m_c[${qi}]}; zt=${m_t[${qi}]}; 293 zp=${m_p[${qi}]}; zs=${m_s[${qi}]}; 294 zd=${m_d[${qi}]}; zl=${m_l[${qi}]}; 295 [[ ${m_v} = 'verbose' ]] && \ 205 296 { echo '---'; 206 297 echo '--- Component : '${zc}; 207 298 echo '--- Tag : '${zt}; 208 echo '--- CVS Server : '${zs}; 209 echo '--- Directory : '${zd}; 299 echo '--- System : '${zp}; 300 echo '--- Server : '${zs}; 301 echo '--- Directory : '${zd}; 210 302 echo '--- Local Dir : '${zl}; } 211 #--- ------------------------------------------212 #- record in F_LOG file model information ---213 #--- ------------------------------------------303 #--- 304 #- Record information about the action in the "log" file 305 #--- 214 306 { echo '---'; 215 307 echo '--- Component : '${zc}; 216 308 echo '--- Tag : '${zt}; 217 echo '--- CVS Server : '${zs}; 218 echo '--- Directory : '${zd}; 309 echo '--- System : '${zp}; 310 echo '--- Server : '${zs}; 311 echo '--- Directory : '${zd}; 219 312 echo '--- Local Dir : '${zl}; } >>"${F_LOG}" 220 case ${m_a} in 221 ( checkout | update | diff ) 222 c_c='(cd '${d_m}/${zl}'; cvs -d :pserver:'${zs}' '${m_a}; 223 [ ${m_a} = 'checkout' -a ${zt} != '?' ] && \ 224 { c_c=${c_c}' -r '${zt}; } 225 [ ${m_a} = 'checkout' -a ${zd} != '.' ] && \ 226 { c_c=${c_c}' -d '${zd}; } 227 c_c=${c_c}' '${zc}')';; 228 ( remove ) 229 c_c='(cd '${d_m}/${zl}'; rm -rf '${zc}')';; 230 (*) 231 echo 'Action '"${m_a}"' not supported' 1>&2; 232 exit 4;; 233 esac 234 grep "${zs%%/*}"'.*/'"${zs#*/}" ~/.cvspass > /dev/null; 235 if [ ${?} != 0 ]; then 236 c_z='cvs -d :pserver:'${zs}' login'; 237 [ ${m_v} = 'verbose' ] && { echo ${c_z}; } 238 eval ${c_z}; 239 fi 240 [ ${m_v} = 'verbose' ] && { echo '--- Command : '${c_c}; } 313 #--- 314 [[ ${zp} = 'cvs' ]] && \ 315 { 316 case ${m_a} in 317 ( checkout | update | diff ) 318 c_c='(cd '${d_m}/${zl}'; '${zp}' -d :pserver:'${zs}' '${m_a}; 319 [[ ${m_a} = 'checkout' && ${zt} != '?' ]] && \ 320 { c_c=${c_c}' -r '${zt}; } 321 [[ ${m_a} = 'checkout' && ${zd} != '.' ]] && \ 322 { c_c=${c_c}' -d '${zd}; } 323 c_c=${c_c}' '${zc}')';; 324 ( remove ) 325 c_c='(cd '${d_m}/${zl}'; rm -rf '${zc}')';; 326 esac 327 grep "${zs%%/*}"'.*/'"${zs#*/}" ~/.cvspass > /dev/null; 328 [[ ${?} != 0 ]] && \ 329 { 330 c_z='cvs -d :pserver:'${zs}' login'; 331 [[ ${m_v} = 'verbose' ]] && { echo ${c_z}; } 332 eval ${c_z}; 333 } 334 } 335 #--- 336 [[ ${zp} = 'svn' ]] && \ 337 { 338 case ${m_a} in 339 ( checkout | update | diff ) 340 c_c='(cd '${d_m}/${zl}'; '${zp}' '${m_a}; 341 [[ ${m_a} = 'checkout' && ${zt} != '?' ]] && \ 342 { c_c=${c_c}' -r '${zt}; } 343 c_c=${c_c}' '${zs}'/'${zc}; 344 [[ ${m_a} = 'checkout' && ${zd} != '.' ]] && \ 345 { c_c=${c_c}' '${zd}; } 346 c_c=${c_c}')';; 347 ( remove ) 348 c_c='(cd '${d_m}/${zl}'; rm -rf '${zc##*/}')';; 349 esac 350 } 351 #--- 352 [[ ${m_v} = 'verbose' ]] && { echo '--- Command : '${c_c}; } 241 353 eval ${c_c}; 242 354 done 243 #--- -----------------------------------------------------244 #- Traitement du repertoire WORK pour les modeles OPA ---245 #--- -----------------------------------------------------355 #--- 356 #- Actions related to the WORK directory for the OPA models 357 #--- 246 358 case ${m_n} in 247 ( EEL* | ORCA* | OFF_TRC | IPSLCM* | ORCA_TOYATM | NEMO_ORCA2_LIM | GYRE ) 359 ( EEL* | ORCA* | OFF_TRC | IPSLCM* | ORCA_TOYATM | \ 360 NEMO_ORCA2_LIM | GYRE ) 248 361 d_m1=${d_m}/modeles/OPA ; 249 362 [ ${m_a} = 'checkout' -o ${m_a} = 'remove' ] && … … 252 365 { 253 366 [ -d ${d_m1}/WORK ] || mkdir ${d_m1}/WORK; 254 cd ${d_m1}/WORK; 367 cd ${d_m1}/WORK; 255 368 # Getting the configuration files to build the Makefile 256 ln -sf ../../../*/${m_n}/scripts/BB_make AA_make ;369 ln -sf ../../../*/${m_n}/scripts/BB_make AA_make; 257 370 ln -sf ../../../*/${m_n}/scripts/BB_make.ldef AA_make.ldef ; 258 371 case ${m_n} in … … 266 379 ln -sf ../SRC_ORCA/*.[Ffh] .;; 267 380 ( ORCA*LIM | IPSLCM* | ORCA_TOYATM | ORCA*LMD* ) 268 [ "${m_n}" = "IPSLCM4_LOOP" ] && echo " Creation du catalogue OPA/WORK = ORCA + LIM + TRC" || echo " Creation du catalogue OPA/WORK = ORCA + LIM" 381 [ "${m_n}" = "IPSLCM4_LOOP" ] && \ 382 echo " Creation du catalogue OPA/WORK = ORCA + LIM + TRC" || \ 383 echo " Creation du catalogue OPA/WORK = ORCA + LIM" 269 384 ln -sf ../SRC_ORCA/*.[Ffh] . 270 385 [ "${m_n}" = "IPSLCM4_LOOP" ] && \rm *.passivetrc.h 271 [ "${m_n}" = "IPSLCM4_LOOP" ] && ln -sf ../SRC_TRC/*.[Ffh] ../SRC_TRC/trc_sms/*.[Ffh] . 386 [ "${m_n}" = "IPSLCM4_LOOP" ] && \ 387 ln -sf ../SRC_TRC/*.[Ffh] ../SRC_TRC/trc_sms/*.[Ffh] . 272 388 ln -sf ../SRC_UCL/[a-z]* .;; 273 389 ( ORCA*_LIM_TRC ) … … 288 404 esac 289 405 # Building the standard list of source files 290 cat >.patron <<"EOF" 406 cat >.patron <<"EOF" 291 407 CVS 292 408 SRC_PARAM … … 307 423 thersf.f 308 424 EOF 309 ls -1 | fgrep -v -f .patron >SRC_FILE_LIST ; cp SRC_FILE_LIST SRC_FILE_LIST.temp ; 425 ls -1 | fgrep -v -f .patron >SRC_FILE_LIST; 426 cp SRC_FILE_LIST SRC_FILE_LIST.temp; 310 427 # 311 428 KEY=$(grep P_P AA_make.ldef); … … 313 430 };; 314 431 esac 315 #--- ----------316 #- [EN]FIN ---317 #--- ----------432 #--- 433 #- That's all folks 434 #--- 318 435 exit 0;
Note: See TracChangeset
for help on using the changeset viewer.