Beispiel #1
0
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())
Beispiel #2
0
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
Beispiel #3
0
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())