/[ambar]/ambar/actualizar-desc-salas.py
ViewVC logotype

Diff of /ambar/actualizar-desc-salas.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by amoyav, Thu May 9 05:31:17 2002 UTC revision 1.2 by amoyav, Thu Jul 4 21:09:52 2002 UTC
# Line 57  def averiguar_version(contenido): Line 57  def averiguar_version(contenido):
57      return (version, linea, i)      return (version, linea, i)
58    
59    
60  def convertir_contenido(contenido):  def convertir_contenido(contenido, conversiones):
61      """Esta es la funcion que hace el trabajo real. Recibe una lista de strings,      """Esta es la funcion que hace el trabajo real. Recibe una lista de strings,
62      uno por cada linea del fichero, y modifica los que sean necesarios. Al final      uno por cada linea del fichero, y modifica los que sean necesarios. Al final
63      devuelve true si no ha habido errores y ha cambiado algo del contenido."""      devuelve true si no ha habido errores y ha cambiado algo del contenido.
64        
65        El parametro conversiones es un diccionario que se actualiza si se
66        ha convertido el fichero con exito. Si por ejemplo, el fichero era de la
67        version 1.0 y se ha subido a la 1.2, al diccionario le seran añadidas las
68        siguientes claves: { "1.0":1, "1.1":1, "1.2":1 }.
69        """
70    
71      try:      try:
72    
# Line 74  def convertir_contenido(contenido): Line 80  def convertir_contenido(contenido):
80                                    
81                  # Versión 1.0 -> 1.1: no hay que modificar el fichero (excepto el numero de                  # Versión 1.0 -> 1.1: no hay que modificar el fichero (excepto el numero de
82                  # version), porque los cambios consisten en añadir tags nuevos.                  # version), porque los cambios consisten en añadir tags nuevos.
83                    print "->Convirtiendo a versión 1.1"
84                  version = "1.1"                  version = "1.1"
85                  contenido[nlinea_version] = linea_version.replace("1.0", "1.1")                  contenido[nlinea_version] = linea_version.replace("1.0", "1.1")
                 print "->Convertido a versión 1.1"  
86                  convertido_ok = 1                  convertido_ok = 1
87                    conversiones["1.0"] = 1
88                                    
89              else:              else:
90                  raise Exception, "Numero de version desconocido: " + version                  raise Exception, "Numero de version desconocido: " + version
# Line 90  def convertir_contenido(contenido): Line 97  def convertir_contenido(contenido):
97          return 0          return 0
98    
99    
100  def convertir_fichero(nombre_fichero):  def convertir_fichero(nombre_fichero, conversiones):
101      """Funcion generica que convierte un fichero: lo lee en memoria, convierte      """Funcion generica que convierte un fichero: lo lee en memoria, convierte
102      el contenido y luego lo vuelve a escribir. El fichero original se guarda      el contenido y luego lo vuelve a escribir. El fichero original se guarda
103      añadiendole la extension .bkp"""      añadiendole la extension .bkp.
104        """
105    
106      print "Analizando fichero " + nombre_fichero + "..."      print "Analizando fichero " + nombre_fichero + "..."
107      fichero = open(nombre_fichero)      fichero = open(nombre_fichero)
108      contenido = fichero.readlines()      contenido = fichero.readlines()
109      fichero.close()      fichero.close()
110    
111      modificado_ok = convertir_contenido(contenido)      convertido_ok = convertir_contenido(contenido, conversiones)
112    
113      if modificado_ok:      if convertido_ok:
114          print "->Convertido OK"          print "->Convertido OK"
115          os.rename(nombre_fichero, nombre_fichero + ".bkp")          os.rename(nombre_fichero, nombre_fichero + ".bkp")
116          fichero = open(nombre_fichero, "w")          fichero = open(nombre_fichero, "w")
# Line 115  def convertir_fichero(nombre_fichero): Line 123  def convertir_fichero(nombre_fichero):
123    
124  os.chdir("./desc_salas")  os.chdir("./desc_salas")
125    
126    conversiones = {}
127    
128  for nombre_fichero in os.listdir("."):  for nombre_fichero in os.listdir("."):
129      if sre.match(".*\.xml$", nombre_fichero):      if sre.match(".*\.xml$", nombre_fichero):
130          convertir_fichero(nombre_fichero)          convertir_fichero(nombre_fichero, conversiones)
131    
132  while 1:  if len(conversiones) > 0:
133    borrar_bkp = raw_input("¿Borrar ficheros .bkp?: ").lower()      while 1:
134    if borrar_bkp == "s" or borrar_bkp == "si":        print "Durante la conversion se han guardado copias de los ficheros originales"
135        for nombre_fichero in os.listdir("."):        print "de descripcion de salas, con el mismo nombre y extension .bkp. Ahora"
136            if sre.match(".*\.xml\.bkp$", nombre_fichero):        print "puedes borrar los ficheros de copia, o conservarlos."
137                os.remove(nombre_fichero)        borrar_bkp = raw_input("¿Borrar ficheros .bkp?: ").lower()
138        break        if borrar_bkp == "s" or borrar_bkp == "si":
139    elif borrar_bkp == "n" or borrar_bkp == "no":            for nombre_fichero in os.listdir("."):
140        break                if sre.match(".*\.xml\.bkp$", nombre_fichero):
141                      os.remove(nombre_fichero)
142              break
143          elif borrar_bkp == "n" or borrar_bkp == "no":
144              break
145    
146    if conversiones.has_key("1.0"):
147        print """
148    Se han convertido ficheros de version 1.0. Hay que revisarlos a mano para
149    añadir articulos en los titulos de sala, las salidas y los nombres de
150    objetos (los articulos iran en minusculas). Por ejemplo, cambiar
151        <nombre>Salon principal de la posada</nombre>
152    por
153        <nombre>el salon principal de la posada</nombre>
154    """
155    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26