]> SALOME platform Git repositories - tools/eficas.git/blob - Cuve2dg/sdistCuveqt.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Cuve2dg / sdistCuveqt.py
1 # -*- coding: utf-8 -*-
2 """
3      Ce module sert à construire les distributions d'EFICAS pour Openturns
4      en fonction du tag CVS courant
5      Les distributions sont :
6       - un tar.gz pour UNIX ne contenant pas mxTextTools
7      L'utilisation de ce module est la suivante :
8       1- Se mettre dans un répertoire de travail
9       2- Configurer son environnement pour utiliser le référentiel CVS EFICAS
10       3- Exporter les sources d'EficasV1 par la commande :
11             cvs export -r TAG -d Eficas_export EficasV1
12          ou TAG est le tag CVS de la version que l'on veut distribuer (par exemple V1_1p1)
13       5- Aller dans le répertoire Eficas_export
14       6- Executer le script sdist.py
15              python sdist.py
16          Ce qui a pour effet de creer un repertoire dist contenant la distribution
17          et de la copier dans le répertoire indiqué par dir_download s'il est accessible
18
19 """
20 import os,shutil,glob,sys
21 import types
22
23 nom_distrib="QTEficasOpenturns_V1_0"
24 path_distrib=os.path.join("dist",nom_distrib)
25 path_TextTools="/home/eficas/pkg/mxTools/egenix2.0.2pourWindows/mx/TextTools"
26 dir_download= "/home/eficas/WWW/telechargement/eficas"
27
28 def main():
29    if os.path.isdir('dist'):shutil.rmtree('dist')
30
31    copyfiles('.',path_distrib,['LICENSE.TERMS','INSTALL','NEWS'])
32
33    copyfiles('../Editeur',os.path.join(path_distrib,'Editeur'),['*.py','faqs.txt'])
34    copyfiles('../InterfaceQT4',os.path.join(path_distrib,'InterfaceQT4'),['*.py','faqs.txt'])
35    copyfiles('../UiQT4',os.path.join(path_distrib,'UiQT4'),['*.ui','makefile'])
36    copyfiles('../Cuve2dg',os.path.join(path_distrib,'Cuve2dg'),['*.py','*.ini'])
37    copyfiles('../Ihm',os.path.join(path_distrib,'Ihm'),['*.py'])
38    copyfiles('../Extensions',os.path.join(path_distrib,'Extensions'),['*.py'])
39    copyfiles('../Misc',os.path.join(path_distrib,'Misc'),['*.py'])
40    copyfiles('../Accas',os.path.join(path_distrib,'Accas'),['*.py'])
41    copyfiles('../Accas',os.path.join(path_distrib,'Noyau'),['*.py'])
42    copyfiles('../Accas',os.path.join(path_distrib,'Validation'),['*.py'])
43    # AIDE
44    copyfiles('../AIDE',os.path.join(path_distrib,'AIDE'),['*.py'])
45    copyfiles('../AIDE/fichiers',os.path.join(path_distrib,'AIDE','fichiers'),['*'])
46    copyfiles('.',os.path.join(path_distrib,'AIDE','fichiers'),['INSTALL','NEWS'])
47    copyfiles('../Editeur',os.path.join(path_distrib,'AIDE','fichiers'),['faqs.txt'])
48    #                            ______________________
49
50    copyfiles('../convert',os.path.join(path_distrib,'convert'),['*.py'])
51    copyfiles('../convert/Parserv5',os.path.join(path_distrib,'convert','Parserv5'),['*.py'])
52    copyfiles('../generator',os.path.join(path_distrib,'generator'),['*.py'])
53    copyfiles('../Editeur/icons',os.path.join(path_distrib,'Editeur','icons'),['*.gif'])
54    copyfiles('../Editeur/icons',os.path.join(path_distrib,'Editeur','icons'),['*.png'])
55    copyfiles('../Editeur/Patrons/',os.path.join(path_distrib,'Editeur','Patrons'),['*.com*'])
56    copyfiles('../Editeur/Patrons/CUVE2DG',os.path.join(path_distrib,'Editeur','Patrons','CUVE2DG'),['*.com*'])
57
58    copyfiles('../Noyau',os.path.join(path_distrib,'Noyau'),['*.py'])
59    copyfiles('../Validation',os.path.join(path_distrib,'Validation'),['*.py'])
60
61    
62    tarball= maketarball('dist',nom_distrib,nom_distrib)
63    try:
64       shutil.copy(tarball,dir_download)
65    except:
66       print "Repertoire de download inconnu : ",dir_download
67
68
69
70 def make_dir(dir_cible):
71    if type(dir_cible) is not types.StringType:
72       raise "make_dir : dir_cible doit etre une string (%s)" % `dir_cible`
73    head,tail=os.path.split(dir_cible)
74    tails=[tail]
75    while head and tail and not os.path.isdir(head):
76       head,tail=os.path.split(head)
77       tails.insert(0, tail)
78
79    for d in tails:
80       head = os.path.join(head, d)
81       if not os.path.isdir(head):os.mkdir(head)
82
83
84 def copyfiles(dir_origin,dir_cible,listfiles):
85    if not os.path.isdir(dir_cible):make_dir(dir_cible)
86    for glob_files in listfiles:
87       for file in glob.glob(os.path.join(dir_origin,glob_files)):
88          shutil.copy(file,dir_cible)
89
90
91 def maketarball(dir_trav,dir_cible,nom_tar):
92    prev=os.getcwd()
93    print prev
94    os.chdir(dir_trav)
95    os.system("tar -cf "+nom_tar+".tar "+dir_cible)
96    os.system("gzip -f9 "+nom_tar+".tar ")
97    os.chdir(prev)
98    return os.path.join(dir_trav,nom_tar+".tar.gz")
99
100
101 main()
102