source: TOOLS/PACK_IPSL/DEM_utilities.sh @ 1715

Last change on this file since 1715 was 1709, checked in by acosce, 12 years ago

Add tool pack used for ccrt/tgcc migration

File size: 2.1 KB
Line 
1#!/bin/bash
2
3#
4# Fonctions utiles pour les scripts de Pack IPSL
5#
6
7function DEM_read_state {
8# Lire l'état du pack pour une simulation
9    local L_CONFIG_FILE=${1}
10    local L_CONFIG_CARD=${2}
11
12    local L_OLD_STATE=$( grep ${L_CONFIG_CARD} ${L_CONFIG_FILE} | awk '{print $2}' )
13   
14    if [ ${?} -eq 0 ] 
15    then
16        echo ${L_OLD_STATE}
17        return 0
18    else
19        return 1
20    fi
21    return 0
22}
23
24function DEM_write_state {
25# Mettre à jour l'état du pack pour une simulation
26   
27    local L_CONFIG_FILE=${1}
28    local L_CONFIG_CARD=${2}
29    local L_NEW_STATE=${3}
30   
31    local L_OLD_LINE=$( grep ${L_CONFIG_CARD} ${L_CONFIG_FILE} )
32    [[ ${?} -eq 0 ]] || ( return 1 ; )
33    local L_OLD_STATE=$( echo ${L_OLD_LINE} | awk '{print $2}' )
34    [[ ${?} -eq 0 ]] || ( return 1 ; )
35   
36    L_NEW_LINE="${L_CONFIG_CARD} ${L_NEW_STATE}"
37
38    if [[ ! -f ${L_CONFIG_FILE}.lock ]]
39    then
40        touch ${L_CONFIG_FILE}.lock
41        sed -i "s%${L_OLD_LINE}%${L_NEW_LINE}%" ${L_CONFIG_FILE}
42        rm -f ${L_CONFIG_FILE}.lock
43    else
44        DEM_log -0 "Erreur. Verrou sur le fichier : ${L_CONFIG_FILE}"
45        return 1
46    fi
47   
48    return 0
49}
50
51function DEM_min {
52# Calcul du minimum d'un nombre quelconque d'entiers
53    local l_min=${1} l_xx
54 
55    for l_xx in ${*:2:${#}}
56    do
57        [[ ${l_xx} -lt ${l_min} ]] && l_min=${l_xx}
58    done
59    echo ${l_min}
60}
61
62function DEM_max {
63# Calcul du maximum d'un nombre quelconque d'entiers
64    local l_max=${1} l_xx
65 
66    for l_xx in ${*:2:${#}}
67    do
68        [[ ${l_xx} -gt ${l_max} ]] && l_max=${l_xx}
69    done
70    echo ${l_max}
71}
72
73function DEM_log {
74# Affichage d'un message sur stdout et dans un fichier de log
75# DEM_log [-0|-1|-2|-3] Message
76#
77    local MESSAGE P_LINE
78    LOG_LEV=${LOG_LEV:-3}
79    local OPTARG OPTIND L_LOG=1
80    local L_DEM_LOG=${DEM_LOG:-dem_log.${$}}
81
82    while getopts 0123 l_name
83    do
84        case ${l_name} in
85            ( 0 )  L_LOG=1 ;;
86            ( 1 )  L_LOG=1 ;;
87            ( 2 )  L_LOG=2 ;;
88            ( 3 )  L_LOG=3 ;;
89        esac
90    done
91    shift $(( ${OPTIND} - 1 ))
92
93    if [[ ${L_LOG} -le ${LOG_LEV} ]]
94    then
95        MESSAGE=${*}
96        P_LINE="$(date) - ${MESSAGE}"
97       
98        echo ${P_LINE}
99        echo ${P_LINE} >> ${L_DEM_LOG}
100    fi
101    return
102}
Note: See TracBrowser for help on using the repository browser.