]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/sdist.py
Salome HOME
CCAR: merge de la version de developpement V1_12a2 dans la branche principale
[tools/eficas.git] / Aster / sdist.py
1 # -*- coding: utf-8 -*-
2 """
3      Ce module sert à construire les distributions d'EFICAS en fonction
4      du tag CVS courant
5      Les distributions sont :
6       - un tar.gz pour UNIX ne contenant pas mxTextTools
7       - un zip pour Windows contenant mx TextTools préinstallé
8      L'utilisation de ce module est la suivante :
9       1- Se mettre dans un répertoire de travail
10       2- Configurer son environnement pour utiliser le référentiel CVS EFICAS
11       3- Exporter les sources d'EficasV1 par la commande :
12             cvs export -r TAG -d Eficas_export EficasV1
13          ou TAG est le tag CVS de la version que l'on veut distribuer (par exemple V1_1p1)
14       4- Copier le répertoire fourni par Aster (ACCAS6.2.0) au meme niveau que Eficas_export
15       5- Aller dans le répertoire Eficas_export
16       6- Executer le script sdist.py
17              python sdist.py
18          Ce qui a pour effet de creer un repertoire dist contenant les 2 distributions
19          et de les copier dans le répertoire indiqué par dir_download s'il est accessible
20
21 """
22 import os,shutil,glob,sys
23 import types
24
25 version="$Name:  $"[7:-2] or 'Test1_4'
26 # ==========Path du noyau fourni par Aster====================
27 path_Noyau="../../AccasAster"
28 # ============================================================
29 nom_distrib="Eficas"+version+"AsterSTA9"
30 path_distrib=os.path.join("dist",nom_distrib)
31 path_TextTools="/home/eficas/pkg/mxTools/egenix2.0.2pourWindows/mx/TextTools"
32 dir_download= "/home/eficas/WWW/telechargement/eficas"
33
34 def main():
35    if os.path.isdir('dist'):shutil.rmtree('dist')
36
37    copyfiles('.',path_distrib,['LICENSE.TERMS','INSTALL','NEWS'])
38
39    copyfiles('../Editeur',os.path.join(path_distrib,'Editeur'),['*.py','faqs.txt'])
40    copyfiles('../Traducteur',os.path.join(path_distrib,'Traducteur'),['*.py'])
41    copyfiles('../Ihm',os.path.join(path_distrib,'Ihm'),['*.py'])
42    copyfiles('../Extensions',os.path.join(path_distrib,'Extensions'),['*.py'])
43    copyfiles('../Misc',os.path.join(path_distrib,'Misc'),['*.py'])
44    copyfiles('../Accas',os.path.join(path_distrib,'Accas'),['*.py'])
45    # AIDE
46    copyfiles('../AIDE',os.path.join(path_distrib,'AIDE'),['*.py'])
47    copyfiles('../AIDE/fichiers',os.path.join(path_distrib,'AIDE','fichiers'),['*'])
48    copyfiles('.',os.path.join(path_distrib,'AIDE','fichiers'),['INSTALL','NEWS'])
49    copyfiles('../Editeur',os.path.join(path_distrib,'AIDE','fichiers'),['faqs.txt'])
50    # Code_Aster
51    copyfiles('../Aster',os.path.join(path_distrib,'Aster'),['prefs.py',
52                                                             'editeur.ini',
53                                                             'eficas_aster.py',
54                                                             'test_eficas.py',
55                                                             'style.py'
56                                                            ])
57
58    # Les Catalogues, Macros, Materiaux et SD
59    # copyfiles('Cata/Utilitai',os.path.join(path_distrib,'Aster','Cata','Utilitai'),['*.py'])
60    # copyfiles('Cata/pre74',os.path.join(path_distrib,'Aster','Cata','pre74'),['*.py'])
61
62    copyfiles('Cata/cataSTA6',os.path.join(path_distrib,'Aster','Cata','cataSTA6'),['*.py'])
63    copyfiles('Cata/cataSTA6/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA6','Macro'),['*.py'])
64
65    copyfiles('Cata/cataSTA7',os.path.join(path_distrib,'Aster','Cata','cataSTA7'),['*.py'])
66    copyfiles('Cata/cataSTA7/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA7','Macro'),['*.py'])
67    copyfiles('Cata/cataSTA7/materiau',os.path.join(path_distrib,'Aster','Cata','cataSTA7/materiau'),['README.py'])
68
69    copyfiles('Cata/cataSTA8',os.path.join(path_distrib,'Aster','Cata','cataSTA8'),['*.py'])
70    copyfiles('Cata/cataSTA8/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA8/Macro'),['*.py'])
71    copyfiles('Cata/cataSTA8/materiau',os.path.join(path_distrib,'Aster','Cata','cataSTA8/materiau'),['README.py'])
72
73    copyfiles('Cata/cataSTA9',os.path.join(path_distrib,'Aster','Cata','cataSTA9'),['*.py'])
74    copyfiles('Cata/cataSTA9/Macro',os.path.join(path_distrib,'Aster','Cata','cataSTA9/Macro'),['*.py'])
75    #copyfiles('Cata/cataSTA9/Messages',os.path.join(path_distrib,'Aster','Cata','cataSTA9/Messages'),['*.py'])
76    copyfiles('Cata/cataSTA9/materiau',os.path.join(path_distrib,'Aster','Cata','cataSTA9/materiau'),['README.py'])
77    copyfiles('Cata/cataSTA9/SD',os.path.join(path_distrib,'Aster','Cata','cataSTA9/SD'),['*.py'])
78
79    copyfiles('Cata',os.path.join(path_distrib,'Aster','Cata'),['*c_clefs_docu'])
80    copyfiles('../Aster/Cata',os.path.join(path_distrib,'Aster'),['aster.py',])
81
82    #                            ______________________
83
84    copyfiles('../convert',os.path.join(path_distrib,'convert'),['*.py'])
85    copyfiles('../convert/Parserv5',os.path.join(path_distrib,'convert','Parserv5'),['*.py'])
86    copyfiles('../generator',os.path.join(path_distrib,'generator'),['*.py'])
87    copyfiles('../Editeur/icons',os.path.join(path_distrib,'Editeur','icons'),['*.gif'])
88    copyfiles('../Editeur/Patrons',os.path.join(path_distrib,'Editeur','Patrons'),['*.com*'])
89
90    copyfiles(os.path.join(path_Noyau,'Noyau'),os.path.join(path_distrib,'Noyau'),['*.py'])
91    copyfiles(os.path.join(path_Noyau,'Validation'),os.path.join(path_distrib,'Validation'),['*.py'])
92    copyfiles(os.path.join(path_Noyau,'Accas'),os.path.join(path_distrib,'Aster'),['properties.py'])
93    copyfiles(os.path.join(path_Noyau,'Cata'),os.path.join(path_distrib,'Aster','Cata'),['__init__.py',])
94    copyfiles(os.path.join(path_Noyau,'Macro'),os.path.join(path_distrib,'Aster','Cata','cataSTA9','Macro'),['.py'])
95    #os.system("mv "+path_distrib+"/Aster/Cata/cata_STA9.py "+path_distrib+"/Aster/Cata/cataSTA9/cata.py")
96
97    copyfiles('../Tools',os.path.join(path_distrib,'Tools'),['*.py'])
98    copyfiles('../Tools/foztools',os.path.join(path_distrib,'Tools','foztools'),['*.py'])
99    copyfiles('../Pmw',os.path.join(path_distrib,'Pmw'),['*.py'])
100    copyfiles('../Pmw/Pmw_1_2',os.path.join(path_distrib,'Pmw','Pmw_1_2'),['*.py'])
101    copyfiles('../Pmw/Pmw_1_2/lib',os.path.join(path_distrib,'Pmw','Pmw_1_2','lib'),['*.py','Pmw.def'])
102
103    
104    tarball= maketarball('dist',nom_distrib,nom_distrib)
105    try:
106       shutil.copy(tarball,dir_download)
107    except:
108       print "Repertoire de download inconnu : ",dir_download
109
110    shutil.copy('prefs.py.win',os.path.join(path_distrib,'Aster','prefs.py'))
111    shutil.copy('editeur.ini.win',os.path.join(path_distrib,'Aster','editeur.ini'))
112
113    try:
114       shutil.copytree(path_TextTools,os.path.join(path_distrib,'Tools','TextTools'))
115    except:
116       print "Impossible de recuperer mxTextTools : ",dir_download
117       sys.exit(1)
118
119    zipfile= makezipfile('dist',nom_distrib,nom_distrib)
120    try:
121       shutil.copy(zipfile,dir_download)
122    except:
123       print "Repertoire de download inconnu : ",dir_download
124
125 def make_dir(dir_cible):
126    if type(dir_cible) is not types.StringType:
127       raise "make_dir : dir_cible doit etre une string (%s)" % `dir_cible`
128    head,tail=os.path.split(dir_cible)
129    tails=[tail]
130    while head and tail and not os.path.isdir(head):
131       head,tail=os.path.split(head)
132       tails.insert(0, tail)
133
134    for d in tails:
135       head = os.path.join(head, d)
136       if not os.path.isdir(head):os.mkdir(head)
137
138
139 def copyfiles(dir_origin,dir_cible,listfiles):
140    if not os.path.isdir(dir_cible):make_dir(dir_cible)
141    for glob_files in listfiles:
142       for file in glob.glob(os.path.join(dir_origin,glob_files)):
143          shutil.copy(file,dir_cible)
144
145
146 def maketarball(dir_trav,dir_cible,nom_tar):
147    prev=os.getcwd()
148    print prev
149    os.chdir(dir_trav)
150    os.system("tar -cf "+nom_tar+".tar "+dir_cible)
151    os.system("gzip -f9 "+nom_tar+".tar ")
152    os.chdir(prev)
153    return os.path.join(dir_trav,nom_tar+".tar.gz")
154
155 def makezipfile(dir_trav,dir_cible,nom_tar):
156    prev=os.getcwd()
157    os.chdir(dir_trav)
158    os.system("zip -rq "+nom_tar+".zip "+dir_cible)
159    os.chdir(prev)
160    return os.path.join(dir_trav,nom_tar+".zip")
161
162 main()
163