Changeset 5695


Ignore:
Timestamp:
2015-08-17T20:12:12+02:00 (5 years ago)
Author:
nicolasmartin
Message:

dev_r5092_CNRS_SETTE return svn cmd to main script; add variable for CDO diff operator; correct exit sequence

Location:
branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/config/X64_ADA.cfg

    r5693 r5695  
    1 # Ada configuration 
     1## Ada configuration 
     2##------------------ 
    23 
    3 # Available softwares: 
     4## Available softwares: 
    45CDO='cdo' 
    56COMPILER='ifort' 
     
    78NETCDF='netcdf/mpi' 
    89 
    9 # Job commands: LoadLeveler 
     10## Job commands: LoadLeveler 
    1011JOB_SUBM="llsubmit ${NEMO_TRUS}/batch/${NEMO_HPCC}.sh | grep -oe '\<[0-9]*\>'" 
    1112JOB_LIST=llq 
     
    1415JOB_DELE=llcancel 
    1516 
    16 # Compiling & computing settings 
     17## Compiling & computing settings 
    1718[ -z "$NPROC"       ] && NPROC=16 
    1819[ -z "${TIME_LIMI}" ] && TIME_LIMI=10800 # 3h 
    1920 
    20 # Architecture environment (be careful with compliance with XIOS) 
     21## Architecture environment (be careful with compliance with XIOS) 
    2122ARCH_ENV=${DIR_XIOS}/arch/arch-${NEMO_HPCC}.env 
     23 
     24## $CDO command to compare 2 datasets 
     25CDOD=$CDO' diffn' 
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/config/X64_ADA_at.cfg

    r5694 r5695  
    1 # Ada configuration 
     1## Ada configuration 
     2##------------------ 
    23 
    3 # Available softwares: 
     4## Available softwares: 
    45CDO='cdo/' 
    56COMPILER='ifort' 
     
    78NETCDF='netcdf/' 
    89 
    9 # Job commands: LoadLeveler 
     10## Job commands: LoadLeveler 
    1011JOB_SUBM="llsubmit ${NEMO_TRUS}/batch/${NEMO_HPCC}.sh | grep -oe '\<[0-9]*\>'" 
    1112JOB_LIST=llq 
     
    1415JOB_DELE=llcancel 
    1516 
    16 # Compiling & computing settings 
     17## Compiling & computing settings 
    1718[ -z "$NPROC"       ] && NPROC=16 
    1819[ -z "${TIME_LIMI}" ] && TIME_LIMI=10800 # 3h 
    1920 
    20 # Architecture environment (be careful with compliance with XIOS) 
     21## Architecture environment (be careful with compliance with XIOS) 
    2122ARCH_ENV=${DIR_XIOS}/arch/arch-${NEMO_HPCC}.env 
     23 
     24## $CDO command to compare 2 datasets 
     25CDOD=$CDO' diffn' 
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/config/romr005.cfg

    r5685 r5695  
    3434REFE_DIR=${DIR_STOR}/${REFE_CONF}/${NEMO_BRAN} 
    3535TEST_DIR=${DIR_SCRA}/${REFE_CONF}/${NEMO_BRAN}/trusting_${DATE} 
    36  
     36CDOD="$CDO diffn" 
    3737 
    3838## External softs directories: 
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting.env

    r5690 r5695  
    3636export NPROC    TIME_LIMI 
    3737export ARCH_ENV 
     38export CDOD 
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting.sh

    r5690 r5695  
    88NEMO_TRUS=$PWD 
    99DEBUG=0; PUBLISH=0 
    10 IMOD=0; ST='FAILED' ## No modules system & 'FAILED' status 
     10IMOD=0; ST='FAILED'  ## No modules system & 'FAILED' status 
     11SVN_CMD='svn status' ## No update on directories 
     12trus_help='trusting_help.txt' 
    1113 
    1214 
     
    1618 
    1719    case $1 in 
    18    '-a'|'--archive') NEMO_TARF=$2    ; shift 2;; '-b'|'--branch ') NEMO_BRAN=$2         ; shift 2;; 
    19    '-d'|'--debug  ') set -vx; DEBUG=1; shift  ;; '-e'|'--email  ') EMAIL=$2             ; shift 2;; 
    20    '-j'|'--job    ') NPROC=$2        ; shift 2;; '-h'|'--help   ') cat trusting_help.txt; exit  1;; 
    21    '-m'|'--machine') NEMO_HPCC=$2    ; shift 2;; '-n'|'--newconf') TEST_CONF=$2         ; shift 2;; 
    22    '-r'|'--refconf') REFE_CONF=$2    ; shift 2;; '-t'|'--time   ') TIME_LIMI=$2         ; shift 2;; 
    23    '-p'|'--publish') PUBLISH=1       ; shift  ;; '-u'|'--user   ') NEMO_USER=$2         ; shift 2;; 
    24    '-v'|'--version') NEMO_VERS=$2    ; shift 2;; "*"             ) cat trusting_help.txt; exit  1;; 
     20   '-a'|'--archive') NEMO_TARF=$2    ; shift 2;; '-b'|'--branch ') NEMO_BRAN=$2    ; shift 2;; 
     21   '-d'|'--debug  ') set -vx; DEBUG=1; shift  ;; '-e'|'--email  ') EMAIL=$2        ; shift 2;; 
     22   '-j'|'--job    ') NPROC=$2        ; shift 2;; '-h'|'--help   ') cat ${help_file}; exit  1;; 
     23   '-m'|'--machine') NEMO_HPCC=$2    ; shift 2;; '-n'|'--newconf') TEST_CONF=$2    ; shift 2;; 
     24   '-r'|'--refconf') REFE_CONF=$2    ; shift 2;; '-t'|'--time   ') TIME_LIMI=$2    ; shift 2;; 
     25   '-p'|'--publish') PUBLISH=1       ; shift  ;; '-u'|'--user   ') NEMO_USER=$2    ; shift 2;; 
     26   '-v'|'--version') NEMO_VERS=$2    ; shift 2;; "*"             ) cat ${help_file}; exit  1;; 
    2527    esac 
    2628 
     
    3133[ $DEBUG -eq 1 ] && xios_full='' && stderr_redir='>' 
    3234 
     35## If -v|--version option has been set, modify default SVN action on directories 
     36if   [ $( echo ${NEMO_VERS} | grep  "HEAD\|up\|update"                     ) ]; then 
     37    SVN_CMD='svn update -r HEAD' 
     38elif [ $( echo ${NEMO_VERS} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' ) ]; then 
     39    SVN_CMD='svn update -r '$( echo ${NEMO_VERS} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' ) 
     40elif [ $( echo ${NEMO_VERS} | grep -o '[0-9]*'                             ) ]; then 
     41    SVN_CMD='svn update -r '$( echo ${NEMO_VERS} | grep -o '[0-9]*'                             ) 
     42fi 
     43 
    3344 
    3445## Initialization (super-computer & user environment) 
     
    3748 
    3849    if   [ ! $( find ${NEMO_TRUS}/config -name ${NEMO_USER}'.cfg' ) ]; then 
    39    echo 'No configuration file (.cfg) in '${NEMO_TRUS}'/config for '${NEMO_USER}; exit 1 
     50   echo 'No configuration file (.cfg) in '${NEMO_TRUS}'/config for '${NEMO_USER} 
     51   exit 1 
    4052    elif [ ! $( find ${NEMO_TRUS}/config -name ${NEMO_HPCC}'.cfg' ) ]; then 
    41    echo 'No configuration file (.cfg) in '${NEMO_TRUS}'/config for '${NEMO_HPCC}; exit 1 
     53   echo 'No configuration file (.cfg) in '${NEMO_TRUS}'/config for '${NEMO_HPCC} 
     54   exit 1 
    4255    else 
    4356   . ${NEMO_TRUS}/trusting.env 
     
    4558 
    4659else 
    47     cat ${NEMO_TRUS}/trusting_help.txt; exit 1 
     60    cat ${NEMO_TRUS}/${help_file} 
     61    exit 1 
    4862fi 
    4963 
     
    6377## Make timestamped directory with messenger files 
    6478##--------------------------------------------------- 
    65 cd ${TEST_DIR} 
    66  
    67 print_step 'Create timestamped testing directory' 
    68 echo ${TEST_DIR} && init_files && get_date 
     79print_step 'Timestamped testing directory' 
     80mkdir -p ${TEST_DIR} ${REFE_DIR} 
     81cd ${TEST_DIR} && echo ${TEST_DIR} 
     82init_files 
     83get_date 
    6984 
    7085 
    7186## Get SVN revision on XIOS & NEMO essentials directories 
    7287##--------------------------------------------------- 
    73 print_step 'SVN command on NEMO directories:'; get_nemo_rev 
     88print_step "SVN action on NEMO directories: ${SVN_CMD}" 
     89get_nemo_rev 
    7490 
    7591 
     
    7793##--------------------------------------------------- 
    7894print_step 'Get softwares releases' 
    79  
    8095[ -e ${ARCH_ENV} ] && . ${ARCH_ENV} > /dev/null 
    8196[ $? -eq 0 ] && export IMOD=1 
    82  
    83 get_soft_rel; cat model.log 
     97get_soft_rel 
     98cat model.log 
    8499 
    85100 
    86101## XIOS compilation from scratch 
    87102##--------------------------------------------------- 
     103print_step 'Compile XIOS' 
    88104cd ${DIR_XIOS} 
    89  
    90 print_step 'Compile XIOS' 
    91105eval ./make_xios ${xios_full} --arch ${NEMO_HPCC} --job $NPROC \ 
    92106    ${stderr_redir} /dev/null 
    93 [ ! -e ${DIR_XIOS}/lib/libxios.a ] && get_out 1 
     107[ ! -e lib/libxios.a ] && get_out 1 || echo 'Success' 
    94108 
    95109 
    96110## NEMO compilation from scratch 
    97111##--------------------------------------------------- 
     112print_step "Compile ${REFE_CONF} configuration" 
    98113cd ${NEMO_CONF} 
    99  
    100 print_step "Compile ${REFE_CONF} configuration" 
    101  
    102 if [[ -d ${TEST_CONF} && $DEBUG -eq 0 ]]; then 
    103     ./makenemo -n ${TEST_CONF} clean_config > /dev/null <<EOF 
     114[[ -d ${TEST_CONF} && $DEBUG -eq 0 ]] && ./makenemo -n ${TEST_CONF} clean_config \ 
     115    > /dev/null <<EOF 
    104116y 
    105117EOF 
    106 fi 
    107118 
    108119eval ./makenemo -n ${TEST_CONF} -r ${REFE_CONF} -m ${NEMO_HPCC} -j $NPROC \ 
    109120                   ${KEYS_ADD} ${KEYS_DEL}                                \ 
    110121    ${stderr_redir} /dev/null 
    111 [ ! -e ${TEST_CONF}/BLD/bin/nemo.exe ] && get_out 2 
     122[ ! -e ${TEST_CONF}/BLD/bin/nemo.exe ] && get_out 2 || echo 'Success' 
    112123 
    113124 
    114125## Get all inputs for running 
    115126##--------------------------------------------------- 
     127print_step 'Set job (copying or extracting inputs)' 
    116128cd ${TEST_DIR} 
    117  
    118 print_step 'Set job (copying or extracting inputs)' 
    119129cp ${NEMO_CONF}/${TEST_CONF}/cpp_* . 
    120 find ${NEMO_CONF}/${TEST_CONF}/EXP00 -regex '.*\(_cfg\|.in\|opa\|_ref\|.xml\)' -exec cp {} . \; 
    121  
     130find ${NEMO_CONF}/${TEST_CONF}/EXP00 -regex '.*\(_cfg\|.in\|opa\|_ref\|.xml\)' \ 
     131                                     -exec  cp {} . \; 
    122132get_inputs 
    123 [ $? -ne 0 ] && get_out 3 
     133[ $? -ne 0 ] && get_out 3 || echo 'Success' 
    124134[ $( find . -name '*.gz' -print -quit ) ] && find . -name '*.gz' -exec gunzip {} \; 
    125135 
     
    127137## Check inputs 
    128138##--------------------------------------------------- 
    129 print_step 'Compare inputs to benchmark files'; diff_inputs 
     139print_step 'Compare inputs to benchmark files' 
     140diff_inputs 
    130141 
    131142 
    132143## Job submission & computation 
    133144##--------------------------------------------------- 
    134 print_step 'Submit job'; JOB_ID=$( eval ${JOB_SUBM} ) 
    135 [ $? -ne 0 ] && get_out 4 
    136  
    137 print_step 'Pending job'; job_pending 
    138  
     145print_step 'Submit job' 
     146JOB_ID=$( eval ${JOB_SUBM} ) 
     147[ $? -ne 0 ] && get_out 4 || echo 'Success (job ID '${JOB_ID}')' 
     148print_step 'Pending job' 
     149job_pending 
    139150print_step 'Job finished' 
    140151 
     
    143154##--------------------------------------------------- 
    144155print_step 'Test job state' 
    145  
    146 if   [[ ! -e time.step || $( grep 'E R R O R' ocean.output ) ]]; then 
    147     echo 'Failure' 
    148     get_out 5 
    149 else 
    150     echo 'Success' 
    151 fi 
    152  
    153 print_step 'Get real CPU time'; get_cpu_time 
     156[[ ! -e time.step || $( grep 'E R R O R' ocean.output ) ]] && get_out 5 || echo 'Success' 
     157print_step 'Get real CPU time' 
     158get_cpu_time 
    154159 
    155160 
     
    157162##--------------------------------------------------- 
    158163ST='OK' ## 'OK' by default 
    159  
    160 print_step 'Compare new outputs to benchmark files'; diff_results; diff_restart 
    161 [ $ST == 'FAILED' ] && get_out 8 
     164print_step 'Compare new outputs to benchmark files' 
     165diff_results 
     166[ $ST == 'FAILED' ] && echo 'Failure' || echo 'Success' 
     167print_step 'Compare new restarts to benchmark files' 
     168diff_restart 
     169[ $ST == 'FAILED' ] && get_out 8      || echo 'Success' 
    162170 
    163171 
    164172## End, at least nothing has changed ;-) 
    165173##--------------------------------------------------- 
    166 get_out 'Code is reliable' 
     174get_out 0 
  • branches/2015/dev_r5092_CNRS_SETTE/NEMOGCM/TRUST/trusting_func.sh

    r5690 r5695  
    11#!/bin/bash 
    22 
    3  
    4 mkdir -p ${TEST_DIR} ${REFE_DIR} 
    53 
    64## Messenger filenames 
     
    4543 
    4644get_nemo_rev() { 
    47     local rev_loc svn_cmd 
    48     local rev=0 svn_opt='status' 
    49  
    50     ## If -v|--version option has been set, modify svn command 
    51     if   [ $( echo ${NEMO_VERS} | grep  "HEAD\|up\|update"                     ) ]; then 
    52    svn_cmd='svn update -r HEAD' 
    53     elif [ $( echo ${NEMO_VERS} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' ) ]; then 
    54    svn_cmd='svn update -r '$( echo ${NEMO_VERS} | grep -o '{[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}}' ) 
    55     elif [ $( echo ${NEMO_VERS} | grep -o '[0-9]*'                             ) ]; then 
    56    svn_cmd='svn update -r '$( echo ${NEMO_VERS} | grep -o '[0-9]*'                             ) 
    57     else 
    58    svn_cmd='svn '${svn_opt} 
    59     fi 
     45    local dir rev_loc 
     46    local rev=0 
    6047 
    6148    ## Loop on essential directories 
     
    7562   fi 
    7663 
    77    echo $dir 
    78    ${svn_cmd} $dir 
     64   echo $dir && ${SVN_CMD} $dir 
    7965   rev_loc=$( svn info $dir | awk '(NR == 9) {print $NF}' ) 
    8066 
     
    9177 
    9278get_soft_rel() { 
    93     local soft_rel 
     79    local soft soft_rel 
    9480 
    9581    for soft in $CDO $COMPILER $MPI $NETCDF; do 
     
    129115 
    130116get_inputs() { 
    131     # List archive content & extract by default 
     117    # List archive content & extract it by default 
    132118    local cmd_iol="tar -tvf ${NEMO_FORC}/${NEMO_TARF}" cmd_iof="tar -vxf ${NEMO_FORC}/${NEMO_TARF}" 
    133119 
    134     ## List & copy file in case of personal inputs 
     120    ## List & copy files in case of personal inputs 
    135121    [ -z "${NEMO_TARF}" ] && cmd_iol="ls ${NEMO_FORC}/*" && cmd_iof="\cp ${NEMO_FORC}/* ." 
    136122 
     
    141127 
    142128diff_inputs() { 
    143     local dif 
     129    local dif file 
    144130    local files_list='' mesg='Same'  
    145131 
     
    152138 
    153139   ## Pass over useless file omission in benckmark directory 
    154    if [ -n "$dif" && "$dif" != '0' ]; then 
     140   if [[ -n "$dif" && "$dif" != '0' ]]; then 
    155141       mesg='Different'; echo $dif; files_list+=$file' ' 
    156142   fi 
     
    186172 
    187173    ## Kill remaining job & stop the test if it's too long 
    188     if [ ${time_elapsed} -eq ${TIME_LIMI} ]; then 
    189    ${JOB_DELE} ${JOB_ID} &> /dev/null 
    190    get_out 6 
    191     fi 
     174    [ ${time_elapsed} -eq ${TIME_LIMI} ] && ${JOB_DELE} ${JOB_ID} &> /dev/null && get_out 6 
    192175} 
    193176 
    194177 
    195178diff_results() { 
     179    local file 
    196180    local files_list='' 
    197181 
     
    215199 
    216200diff_restart() { 
    217     local base_name dif file list_comp list_tmsp nb_dom 
     201    local base_name comp dif file list_comp list_tmsp nb_dom time_step tmsp 
    218202    local files_list='' dift=0 
    219203 
    220     ## Stop if no benchmark files (time.step) 
     204    ## Stop if no benchmark files (ie time.step) 
    221205    [ ! -e ${REFE_DIR}/time.step ] && export ST='FAILED' && get_out 7 
    222  
    223206    time_step=$( cat ${REFE_DIR}/time.step | tr -d [:space:] ) 
    224     echo 'Last time step of benchmark run: '${time_step} 
    225207 
    226208    ## Find all restart files to rebuild 
     
    253235 
    254236                   ## UNIX `cmp` not suitable (timestamp in .nc file) 
    255          dif=$( $CDO diffn $file.nc ${REFE_DIR}/$file.nc 2> /dev/null      \ 
    256                 | awk '/records/ {print $0}' | sed '2 s/^/,/' | tr -d '\n'  ) 
    257  
    258          ## CDO can return no output on stdout with no difference 
     237         dif=$( $CDOD $file.nc ${REFE_DIR}/$file.nc 2> /dev/null          \ 
     238                | awk '/records/ {print $0}' | sed '2 s/^/,/' | tr -d '\n' ) 
     239 
     240         ## CDO can return void stdout with no difference 
    259241         if [[ -n "$dif" && $( echo $dif | awk '{print $1}' ) -ne 0 ]]; then 
    260242             export ST='FAILED' && files_list+=$file' ' 
     
    277259   if [ $dift -ne 0 ]; then 
    278260       echo 'Restarts: '${files_list}$dift' record(s) differ<br>' | tee -a temp_${FILE_COMM} 
    279    else  
    280        echo 'No restart differ' 
    281261   fi 
    282262 
     
    297277 
    298278comments() { 
    299     local opt 
    300     local state=$1 
    301  
    302     ## 'W A R N I N G' by default 
    303     opt='-A2 "^ $state"' 
    304     [ "$state" == 'E R R O R' ] && opt="-A4 $state" 
    305  
    306     ## Select first occurence for web comment 
    307     line=$( grep -m1 $opt ocean.output | tr -d '\n' ) 
    308  
    309     echo   $line 
     279    local opat 
     280    local line='' state=$1 
     281 
     282    if [ -e ocean.output ]; then 
     283        ## 'W A R N I N G' by default 
     284   opat="-A2 '^ $state'" 
     285   [ "$state" == 'E R R O R' ] && opat="-A4 '$state'" 
     286 
     287        ## Select first occurence for web comment 
     288   line=$( grep -m1 $opat ocean.output | tr -d '\n' ) 
     289   echo $line 
     290    fi 
     291 
    310292    printf "$line<br>"      \ 
    311293   >> temp_${FILE_COMM} 
     
    364346 
    365347get_out() { 
     348    local time_step=0 
     349 
    366350    ERR=$1 
    367  
    368     cd ${TEST_DIR} 
     351    cd ${TEST_DIR} ## In case of compilation error 
    369352 
    370353    if [ $ST == 'FAILED' ]; then 
     354   echo 'Failure' 
    371355 
    372356        ## Error identification 
    373357   case $ERR in 
    374        ## Compilation 
    375        1) ERR='XIOS compilation failed' ;; 2) ERR='NEMO compilation failed';; 
     358            ## Compilation 
     359       '1') ERR='XIOS compilation failed' ;; '2') ERR='NEMO compilation failed';; 
    376360       ## Submission 
    377        3) ERR='Missing input files'     ;; 4) ERR='Job submission error'   ;; 
     361       '3') ERR='Missing input files'     ;; '4') ERR='Job submission error'   ;; 
    378362       ## Running 
    379        5) ERR='Crashed at time step'    ;; 6) ERR='Exceeded time limit'    ;; 
     363       '5') ERR='Crashed at time step'    ;; '6') ERR='Exceeded time limit'    ;; 
    380364       ## Results 
    381        7) ERR='Missing previous outputs';; 8) ERR='New outputs differ'     ;; 
     365       '7') ERR='Missing previous outputs';; '8') ERR='New outputs differ'     ;; 
    382366       ## Undefined 
    383        *) ERR='Unknown error'           ;; 
     367       "*") ERR='Unknown error'           ;; 
    384368   esac 
    385369 
    386     fi 
     370    else 
     371   ERR='Code is reliable' 
     372    fi 
     373 
     374    print_step '' 
    387375 
    388376    ## Eventual comments from ocean.output 
    389     print_step 'Comments' 
    390     if [ -e ocean.output ]; then  
    391    if [ $ERR -eq 5 ]; then 
    392        comments 'E R R O R' 
    393        [ -e time.step ] && ERR+=' '$( cat time.step | tr -d ' ' ) 
    394    else 
    395        comments 'W A R N I N G' 
    396        [ $ERR -eq 6   ] && ERR+=' '$(( ${TIME_LIMIT}/3600 ))'h' 
    397    fi 
    398     fi 
    399  
    400     ## Share trusting result (locally or not) 
     377    if [ "$ERR" == 'Crashed at time step' ]; then 
     378   comments 'E R R O R' 
     379   [ -e time.step ] && time_step=$( cat time.step | tr -d ' ' ) 
     380   ERR+=' '$time_step 
     381    else 
     382   comments 'W A R N I N G' 
     383   [ "$ERR" == 'Exceeded time limit' ] && ERR+=' '$(( ${TIME_LIMIT}/3600 ))'h' 
     384    fi 
     385 
    401386    export ERR 
    402     sed -i "2 s/.*/$ST/"  ${FILE_STAT} 
    403     sed -i "2 s/.*/$ERR/" ${FILE_RESU} 
     387    sed -i "2 s/.*/$ST/" ${FILE_STAT}; sed -i "2 s/.*/$ERR/" ${FILE_RESU} 
    404388 
    405389    ## Save tested configuration if trusting failed in production mode (-p|--publish) 
    406     if [[ $ST == 'FAILED' && $PUBLISH -eq 1 && $DEBUG -eq 0 ]]; then 
     390    if [[ $ST == 'FAILED' && $PUBLISH -eq 1 ]]; then 
    407391   echo 'Creating archive '${FILE_ARCH}' under '${REFE_DIR} 
    408392   tar -czf ${REFE_DIR}/${FILE_ARCH} * ${NEMO_HOME}/CONFIG/${TEST_CONF}/MY_SRC \ 
     
    410394    fi 
    411395 
    412     ##  
    413     print_step 'Trusting outcome'; mesg_make; mesg_publish 
     396    ## Share trusting result (.txt file/mail) 
     397    mesg_make 
     398    mesg_publish 
    414399 
    415400    exit 0 
Note: See TracChangeset for help on using the changeset viewer.