#include #include #include "projet.h" #include "projetx.m" /* Inscrit dans le log et affiche sur stdout aussi */ class DUAL_LOG: public PROJET_LOG{ public: DUAL_LOG(const char *path, int append); void sendstr (const char *str); }; DUAL_LOG::DUAL_LOG(const char *_path, int _append) : PROJET_LOG(_path,_append) { } void DUAL_LOG::sendstr (const char *str) { PROJET_LOG::sendstr(str); ::printf ("%s",str); } /* #Sp‚cification: admin / export Une copie de l'archive est disponible a plusieurs sites. Ce prend un m‚canisme qui va permettre de maintenir la synchronisation. Les diff‚rents sites sont reli‚s par courier ‚lectronique (modem). L'archive a une dimension consid‚rable (80megs). On peut pas tout copier constamment. */ /* #Sp‚cification: admin / export / /kit/livre A chaque livraison, un copie est d‚pos‚ dans /kit/livre. Le role de /kit/livre est double. Il agit d'une part comme m‚canisme de s‚curit‚ lors de la livraison. Si un problŠme survient et que l'archivage est interrompue, le contenu de /kit/livre et du r‚pertoire usager devrait permettre de recup‚rer les fichiers. /kit/livre est passablement redondant par rapport a /kit/ombre (l'archive). Cela est souhait‚ et agit comme un garantie suppl‚mentaire. /kit/livre a aussi ‚t‚ r‚alis‚ comme r‚pertoire temporaire pour la distribution des nouvelles r‚visions aux autres sites. */ int main (int argc, char *argv[]) { etc_loadmsg(); int ret = -1; if (argc == 1){ /* #Sp‚cification: admin / export / ligne de commande L'option d'exportation est disponible en mode ligne de commande. Le programme s'appelle prjexpr. On peut l'utiliser de la fa‡on suivante. prjexpr site [ site ... ] */ fprintf (stderr,"prjexpr site [ site ... ]\n"); fprintf (stderr,"\tMet à jour les différents sites satellites\n"); fprintf (stderr,"\tà partir de $(KITOMBRE)/version.dat\n"); }else{ const char *prog = prog_getid(true); USERINFO *user = userinfo_findenv (prog); if (user != NULL){ /* #Sp‚cification: admin / export / export.log Le fichier /kit/sync/export.log indique toutes les r‚visions qui ont ‚t‚ transmises au diff‚rents sites de /kit/sync. */ char pathlog[MAXSIZ_PATH]; user->maksyncpath("export.log",pathlog); DUAL_LOG log (pathlog,1); VERSION_DAT princ (user); ret = 0; for (int i=1; i