#!/usr/bin/env python2 # Copyright (c) 2014 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. import logging import sys import time import client import pseudomodem import pseudomodem_context def main(): """ Entry function to run pseudomodem standalone. """ pmc = None flags = sys.argv[1:] cli_flag = (pseudomodem.CLI_FLAG in flags) # When run from the command line, override autotest logging defaults. root = logging.getLogger() for handler in root.handlers: root.removeHandler(handler) logging.basicConfig( format='%(asctime)s %(levelname)-5.5s|%(module)10.10s:%(lineno)4.4d| ' '%(message)s', datefmt='%H:%M:%S') try: pmc = pseudomodem_context.PseudoModemManagerContext( True, block_output=cli_flag) pmc.cmd_line_flags = flags pmc.Start() if cli_flag: cli = client.PseudoModemClient() cli.Begin() # Blocking else: # Block quietly till user interrupt. while True: time.sleep(30) except KeyboardInterrupt: print 'Terminating on user request.' finally: # This is always hit, even when SIGINT is received. if pmc: pmc.Stop() if __name__ == '__main__': main()