#!/usr/bin/env python
# Copyright 2016 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.
"""Run stream server daemon."""

import argparse
import logging
import os


def main():
  """The Main program, to run stream server daemon."""
  parser = argparse.ArgumentParser(
      description='Launch a Stream server daemon.',
      formatter_class=argparse.ArgumentDefaultsHelpFormatter)
  parser.add_argument('--port', type=int, dest='port', default=9994,
                      help='port number of stream server')

  options = parser.parse_args()

  try:
    os.system('stream_server %s' % options.port)
  except Exception as e:  # pylint: disable=W0702
    logging.exception('Failed to start stream server.')
    exit(1)


if __name__ == '__main__':
  main()
