From: eficas <> Date: Thu, 6 Mar 2003 16:09:53 +0000 (+0000) Subject: Fiche ay_arg_comm X-Git-Tag: CCARDebutMod1809~24 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=b4a5a87b6fe06e7bb2c91860cc7efb0ca43c6b3f;p=tools%2Feficas.git Fiche ay_arg_comm Traitement du bug Ajout de la possibilité de passer en argument le nom du fichier commande à ouvrir au moment de l'appel à Eficas. --- diff --git a/Editeur/appli.py b/Editeur/appli.py index 83b32439..95d77d45 100644 --- a/Editeur/appli.py +++ b/Editeur/appli.py @@ -37,6 +37,7 @@ import fontes import tooltip import properties from widgets import Fenetre +from Misc import MakeNomComplet VERSION="EFICAS v1.3" @@ -55,8 +56,15 @@ class APPLI: self.format_fichier = Tkinter.StringVar() self.message='' self.cree_composants_graphiques() - self.load_appli_composants() + self.load_appli_composants() # Creation du BUREAU self.affiche_FAQ() + # AY : cas ou le nom du fichier a été passé en argument + if fichier : + try : + self.bureau.openJDC( str(MakeNomComplet.FILENAME(fichier)) ) + except : + pass + # AY : fin splash.fini_splash() def send_message(self,message): diff --git a/Misc/MakeNomComplet.py b/Misc/MakeNomComplet.py new file mode 100644 index 00000000..0c921a00 --- /dev/null +++ b/Misc/MakeNomComplet.py @@ -0,0 +1,142 @@ +# Auteur : A. Yessayan +# Date : jeudi 06/03/2003 a 14:36:00 + +""" + +Module MakeNomComplet +--------------------- + Construction du nom complet d'un fichier dans un répertoire existant. + Le fichier n'existe pas forcément mais le répertoire doit OBLIGATOIREMENT + exister. + + Usage : + import MakeNomComplet + + txt="main.py" + txt="./main.py" + txt="/tmp/main.py" + try : + nom_complet=str(MakeNomComplet.FILNAME( txt )) + dir_name = MakeNomComplet.dirname(txt) + fic_name = MakeNomComplet.basename(txt) + except Exception,e: + print txt,' est un nom INVALIDE' + print str(e) + +""" + +try : + from developpeur import DEVELOPPEUR +except : + DEVELOPPEUR=None + +if DEVELOPPEUR : + import developpeur + developpeur.sortie.write( "import de "+__name__+" : $Id$" ) + developpeur.sortie.write( "\n" ) + + +import string +import os +import os.path +import types +import re + +class FILENAME : + def __init__( self , s ) : + assert(type(s)==types.StringType) + assert(len(s)>0) + self.text = s + self.rep=None + self.file=None + liste=string.split( self.text , '/' ) + l=len(liste) + assert(l>=1) + if l == 1 : + rep="." + else : + # evaluation des eventuels paramètres shell : DEBUT + l_evalue=[] + for d in liste : + if len(d) and d[0]=='$' : + d=re.sub( "[\${}]" , "" , d ) + d=os.getenv(d) + l_evalue.append(d) + # evaluation des eventuels paramètres shell : FIN + + rep=string.join( l_evalue[0:l-1] , '/' ) + try : + self.rep = self.getcwd_( rep ) + self.file = liste[-1] + except Exception,e : + raise Exception( "nom de fichier INVALIDE : "+s+'\n'+str(e) ) + + def getcwd_ ( self , rep ) : + prev = os.getcwd() + os.chdir( rep ) + wd = os.getcwd() + os.chdir( prev ) + return wd + + def dirname( self ) : + return self.rep + + def basename( self ) : + return self.file + + def __str__ ( self ) : + return self.rep+'/'+self.file + + + + +def dirname( s ) : + """ + retourne dans une string, le nom complet du répertoire + du fichier dont le nom est passe dans s. + S'il n' y a pas de chemin dans s, c'ets le nom complet + du répertoire courant qui est retourné. + N.B. : ce repertoire doit exister + """ + f=FILENAME(s) + return f.dirname() + + +def basename( s ) : + """ + retourne dans une string, le nom simple du fichier dont le nom + est passe dans s. + N.B. : le repertoire (s'il ya un chemin dans s) doit exister + """ + f=FILENAME(s) + return f.basename() + + +if __name__ == "__main__" : + + import sys + + import MakeNomComplet + + s="${PWD}/MakeNomComplet.py" + print dirname( s ) + print basename( s ) + print str(MakeNomComplet.FILENAME(s)) + + print dirname( "MakeNomComplet.py" ) + print basename( "MakeNomComplet.py" ) + + print dirname( "./MakeNomComplet.py" ) + print basename( "./MakeNomComplet.py" ) + + + try : + print basename( "/toto/main.py" ) + print "ERREUR" + sys.exit(5) + except Exception,e : + print str(e) + print "OKAY" + pass + print "FIN NORMALE DE "+__name__ + sys.exit(0)