示例#1
0
def main():
    parser = argparse.ArgumentParser(
        description="Blinktrade Api Receive application")
    parser.add_argument(
        '-c',
        "--config",
        action="store",
        dest="config",
        default=os.path.expanduser('~/.blinktrade/api_receive.ini'),
        help='Configuration file',
        type=str)
    arguments = parser.parse_args()

    if not arguments.config:
        parser.print_help()
        return

    candidates = [
        os.path.join(site_config_dir('blinktrade'), 'api_receive.ini'),
        arguments.config
    ]
    config = ConfigParser.SafeConfigParser()
    config.read(candidates)

    # Validate the whole file
    for section_name in config.sections():
        options = ProjectOptions(config, section_name)
        if not options.log or \
           not options.port or \
           not options.rpc_url or \
           not options.db_engine:
            raise RuntimeError("Invalid configuration file")

    # Start all applications
    applications = []
    for section_name in config.sections():
        options = ProjectOptions(config, section_name)

        application = ApiReceiveApplication(options, section_name)
        application.listen(options.port)
        applications.append(application)

    if applications:
        # start
        try:
            tornado.ioloop.IOLoop.instance().start()
        except KeyboardInterrupt:
            for application in applications:
                application.clean_up()
示例#2
0
def main():
    parser = argparse.ArgumentParser(description="Blinktrade WebSocket Gateway application")
    parser.add_argument('-i', "--instance", action="store", dest="instance", help='Instance name', type=str)
    parser.add_argument('-c', "--config",
                        action="store",
                        dest="config",
                        default=os.path.expanduser('~/.blinktrade/bitex.ini'),
                        help='Configuration file', type=str)
    arguments = parser.parse_args()

    if not arguments.instance:
      parser.print_help()
      return

    candidates = [ os.path.join(site_config_dir('blinktrade'), 'bitex.ini'),
                   os.path.expanduser('~/.blinktrade/bitex.ini'),
                   arguments.config]
    config = ConfigParser.SafeConfigParser()
    config.read( candidates )

    options = ProjectOptions(config, arguments.instance)

    if not options.trade_in or\
       not options.trade_pub or\
       not options.gateway_log or\
       not options.callback_url or\
       not options.port or\
       not options.allowed_origins or\
       not options.sqlalchemy_connection_string or \
       not options.sqlalchemy_engine:
      raise RuntimeError("Invalid configuration file")


    run_application(options, arguments.instance)
示例#3
0
def main():
    parser = argparse.ArgumentParser(description="Blinktrade")
    parser.add_argument('-c',
                        "--config",
                        action="store",
                        dest="config",
                        help='Configuration file',
                        type=str)
    arguments = parser.parse_args()

    candidates = [
        os.path.join(site_config_dir('blinktrade'), 'bitex.ini'),
        os.path.expanduser('~/.blinktrade/bitex.ini'), arguments.config
    ]

    config = ConfigParser.SafeConfigParser()
    config.read(candidates)

    processes = []
    for section_name in config.sections():
        project_options = ProjectOptions(config, section_name)
        if section_name[:5] == 'trade':
            p = multiprocessing.Process(name=section_name,
                                        target=partial(trade_instance,
                                                       section_name,
                                                       project_options))
        elif section_name[:10] == 'ws_gateway':
            p = multiprocessing.Process(name=section_name,
                                        target=partial(ws_gateway_instance,
                                                       section_name,
                                                       project_options))
        elif section_name[:6] == 'mailer':
            p = multiprocessing.Process(name=section_name,
                                        target=partial(mailer_instance,
                                                       section_name,
                                                       project_options))
        else:
            raise RuntimeError("Invalid section name")
        processes.append(p)

    # start all sub processes
    for p in processes:
        p.daemon = True
        p.start()

    # wait for them to finish
    for p in processes:
        logging.debug('waiting %s', p.name)
        p.join()
示例#4
0
def main():
    parser = argparse.ArgumentParser(
        description="Blinktrade Trade application")
    parser.add_argument('-i',
                        "--instance",
                        action="store",
                        dest="instance",
                        help='Instance name',
                        type=str)
    parser.add_argument('-c',
                        "--config",
                        action="store",
                        dest="config",
                        default=os.path.expanduser('~/.blinktrade/bitex.ini'),
                        help='Configuration file',
                        type=str)
    arguments = parser.parse_args()

    if not arguments.instance:
        parser.print_help()
        return

    candidates = [
        os.path.join(site_config_dir('blinktrade'), 'bitex.ini'),
        os.path.expanduser('~/.blinktrade/bitex.ini'), arguments.config
    ]
    config = ConfigParser.SafeConfigParser()
    config.read(candidates)

    options = ProjectOptions(config, arguments.instance)

    if not options.trade_in or \
       not options.trade_pub or \
       not options.trade_log or \
       not options.global_email_language or \
       not options.sqlalchemy_connection_string or \
       not options.sqlalchemy_engine:
        raise RuntimeError("Invalid configuration file")

    application = TradeApplication.instance()
    application.initialize(options, arguments.instance)
    application.run()
def main():
    parser = argparse.ArgumentParser(
        description="Blinktrade Mailer application")
    parser.add_argument('-i',
                        "--instance",
                        action="store",
                        dest="instance",
                        help='Instance name',
                        type=str)
    parser.add_argument('-c',
                        "--config",
                        action="store",
                        dest="config",
                        default=os.path.expanduser('~/.blinktrade/bitex.ini'),
                        help='Configuration file',
                        type=str)
    arguments = parser.parse_args()

    if not arguments.instance:
        parser.print_help()
        return

    candidates = [
        os.path.join(site_config_dir('blinktrade'), 'bitex.ini'),
        os.path.expanduser('~/.blinktrade/bitex.ini'), arguments.config
    ]
    config = ConfigParser.SafeConfigParser()
    config.read(candidates)

    options = ProjectOptions(config, arguments.instance)

    if not options.mailchimp_apikey or\
       not options.mandrill_apikey or\
       not options.mailchimp_newsletter_list_id or\
       not options.trade_in or\
       not options.mailer_username or\
       not options.mailer_password or\
       not options.trade_pub or \
       not options.mailer_log :
        raise RuntimeError("Invalid configuration file")

    run_application(options, arguments.instance)