#!/bin/csh

#######################################################################################################################################
#                                                                                                                                     #
#         R E N V O I   A   L A   M A C H I N E   D E   R E F E R E N C E   D ' U N   F I C H I E R  :                                #
#                                                                                                                                     #
#                                                                                                                                     #
#         Utilisation :                                                                                                               #
#                                                                                                                                     #
#                   $xcg/unite$Z        <nom_absolu_de_fichier> [<attendre> [<detruire> [<mRef> [<uRef> [<ModeD> [<ModeF>]]]]]]       #
#                                                                                                                                     #
#         ou :                                                                                                                        #
#                                                                                                                                     #
#                   $xcg/unite$Z        "<fA_absolu> <fR_absolu>" [<attendre> [<detruire> [<mRef> [<uRef> [<ModeD> [<ModeF>]]]]]]     #
#                   $xcg/unite$Z        "<fA_absolu> <fR_absolu>" [<attendre> [<detruire> [<mRef> [<uRef> ["<ModeD>" ["<ModeF>"]]]]]] #
#                                                                                                                                     #
#                                                                                                                                     #
#         ATTENTION :                                                                                                                 #
#                                                                                                                                     #
#                     Le mode du fichier que l'on transmet ne                                                                         #
#                   sera conserve sur la machine de REFERENCE                                                                         #
#                   que s'il n'y existait pas deja. Ainsi donc,                                                                       #
#                   pour transmettre le fichier avec son mode, il                                                                     #
#                   convient de detruire celui-ci au prealable sur                                                                    #
#                   la machine de REFERENCE (par 'delete'), s'il                                                                      #
#                   existait deja.                                                                                                    #
#                                                                                                                                     #
#                     On notera enfin, que s'il etait en mode 'ro'                                                                    #
#                   sur la machine de REFERENCE, la commande courante                                                                 #
#                   '$xcg/unite$Z' se met en attente ; le deblocage a                                                                 #
#                   lieu si :                                                                                                         #
#                                                                                                                                     #
#                   1-soit le fichier est mis en mode 'rw' sur la machine                                                             #
#                   de REFERENCE (auquel cas, la nouvelle version sera aussi                                                          #
#                   en mode 'rw', et le mode n'est pas transmis, sauf s'il                                                            #
#                   etait deja en mode 'rw' sur la machine locale qui execute                                                         #
#                   la commande '$xcg/unite$Z'...),                                                                                   #
#                                                                                                                                     #
#                   2-soit le fichier est detruit (par 'delete', et alors                                                             #
#                   le mode est transmis...).                                                                                         #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xcg/unite$Z' :                                                                                                  #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

set       Fichiers=($1)

#20180205133056____:if        ($vCOMPUTERd == $mHOTE) then                                                                            #
#20181101141033____:if        ($EXIST) then                                                                                           #
                                        # Test introduit le 20160610110059 a cause des "fausses MACHINEs" de type '$CMAP28'...        #
                                        #                                                                                             #
                                        # Grace a 'v $xarm/LACT19$D/etc/init.d/iptables porte-brancion' (par exemple...), la          #
                                        # modification du 20180205133056 a ete rendue possible...                                     #
#20181101141033____:          set       Attendre=$2                                                                                   #
#20181101141033____:          set       Detruire=$3                                                                                   #
#20181101141033____:          set       mReference=$4                                                                                 #
#20181101141033____:          set       uReference=$5                                                                                 #
#20181101141033____:          set       ModeDirectory=($6)                                                                            #
#20181101141033____:          set       ModeFichierR=($7)                                                                             #

#20181101141033____:          if        ("$mReference" == "$K_VIDE") then                                                             #
#20181101141033____:                    set       mReference=$mREFERENCE                                                              #
                                        # La machine de REFERENCE par defaut est evidemment '$mREFERENCE'...                          #
#20181101141033____:          else                                                                                                    #
#20181101141033____:          endif                                                                                                   #

#20181101141033____:          if        ("$uReference" == "$K_VIDE") then                                                             #
#20181101141033____:                    set       uReference=$uREFERENCE                                                              #
                                        # L'utilisateur de REFERENCE par defaut est evidemment '$uREFERENCE'...                       #
#20181101141033____:          else                                                                                                    #
#20181101141033____:          endif                                                                                                   #

#20181101141033____:          source    $Falias_unite_1                                                                               #
                                        # Execution de l'unite...                                                                     #
#20181101141033____:else                                                                                                              #
#20181101141033____:          EROR      "Il ne peut y avoir d'unite du(des) fichier(s) '$Fichiers' sur '$vCOMPUTERd'."                #
                                        # En effet, en general, les filtres sur les adresses 'IP' empechent cela...                   #
#20181101141033____:endif                                                                                                             #

unite     $Fichiers
                                        # Mis sous cette forme "apauvrie" le 20181101141033 afin de ne pas provoquer de blocage       #
                                        # ou de delais lors de calculs faisant reference a ce 'v $xcg/unite$Z', alors que             #
                                        # '$mREFERENCE' n'est pas accessible... Cela s'est vu aux environs de cette date lors du      #
                                        # calcul des images du type 'v $xiirk/REFM.e3.21' par exemple dans                            #
                                        # 'v $xivP_d09_f2/.REFL.y.11.$U .xcg.unite.Z' ou encore dans                                  #
                                        # 'v $xivP_d09_f2/.REFL.y.12.$U .xcg.unite.Z'...                                              #



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.