blob: 822c526723821bf7423404dd1ffaabca9e477c79 [file] [log] [blame]
#!/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()