def main(): user = None passwd = None if len(sys.argv) > 1: usage = "uso: %prog [opciones] usuario contraseña" parser = OptionParser(usage=usage) parser.add_option("-c", "--config", dest="fichconfig", help="Usa la configuración alternativa almacenada en FICHERO", metavar="FICHERO") (options, args) = parser.parse_args() fconfig = options.fichconfig if len(args) >= 1: user = args[0] if len(args) >= 2: passwd = args[1] # HACK if fconfig: config = ConfigConexion() config.set_file(fconfig) errores = MetaF() sys.stderr = errores m = Menu(user, passwd) m.mostrar() if not errores.vacio(): print "Detectado errores en segundo plano durante la ejecución." enviar_correo('Errores en segundo plano. La stderr contiene:\n%s' % (errores), m.get_usuario())
def parse_options(): """ Instancia las opciones de arranque (parámetros de línea de comando) para la ventana de la clase invocadora. """ from optparse import OptionParser parser = OptionParser() parser.add_option("-u", "--usuario", dest = "usuario", help = _("Nombre o identificador del usuario")) parser.add_option("-d", "--debug", dest = "debug", action="store_true", help = _("Activar información de depuración")) parser.add_option("-p", "--puid", dest = "puid", help = _("Identificador de pclases (puid) " "del objeto a mostrar en ventana inicialmente")) parser.add_option("-c", "--config", dest = "fichconfig", help = _("Usa una configuración alternativa " "almacenada en FICHERO"), metavar = "FICHERO") parser.add_option("-v", "--verbose", dest = "verbose", action = "store_true", help = _("Activar el modo verboso")) (options, args) = parser.parse_args() params = [] opt_params = {} if len(args) != 0: params = args[0] # FIXME: Como pclases se importa en ventana_generica y en cualquier otra # ventana (a excepción del menú) antes de poder parsear la opción "-c", no # hay manera -inmediata, se entiende, sin reescribir mucho- de usar una # configuración alternativa que no sea la que está en ginn.conf :( fconfig = options.fichconfig if fconfig: config = ConfigConexion() config.set_file(fconfig) config.DEBUG = options.debug config.VERBOSE = options.verbose # Como no se puede cambiar al vuelo la conexión a la BD, el cambio del # fichero de configuración hay que hacerlo ANTES de "cargar" pclases. from framework import pclases pclases.DEBUG = options.debug pclases.VERBOSE = options.verbose if options.usuario: opt_params["usuario"] = options.usuario if options.puid: puid = options.puid objeto = pclases.getObjetoPUID(puid) opt_params["objeto"] = objeto return params, opt_params
def main(): fconfig = None user = None passwd = None if len(sys.argv) > 1: from optparse import OptionParser usage = _("uso: %prog [opciones] usuario contraseña") parser = OptionParser()#usage = usage) parser.add_option("-c", "--config", dest = "fichconfig", help = _("Usa una configuración alternativa " "almacenada en FICHERO"), metavar = "FICHERO") (options, args) = parser.parse_args() fconfig = options.fichconfig if len(args) >= 1: user = args[0] if len(args) >= 2: passwd = args[1] # HACK if fconfig: config = ConfigConexion() config.set_file(fconfig) print "Usando configuración de {0}".format(fconfig) # Lo hago así porque en todos sitios se llama al constructor sin # parámetros, y quiero instanciar al singleton por primera vez aquí. # Después pongo la configuración correcta en el archivo y en sucesivas # llamadas al constructor va a devolver el objeto que acabo de crear y # con la configuración que le acabo de asignar. En caso de no recibir # fichero de configuración, la siguiente llamada al constructor será # la que cree el objeto y establezca la configuración del programa. # OJO: Dos llamadas al constructor con parámetros diferentes crean # objetos diferentes. #salida = MetaF() #sys.stdout = salida errores = MetaF() sys.stderr = errores m = Menu(user, passwd) m.mostrar() if 0: # TODO: FIXME: XXX: ¡Quitar cuando arregle/funcione el bugreport! # if not errores.vacio(): print >> sys.stderr, _("Se han detectado algunos errores en " "segundo plano durante la ejecución.") enviar_correo(_('Errores en segundo plano. La stderr contiene:\n%s') % (errores), m.get_usuario())