#!/usr/bin/env python
# Copyright (c) 2017 Arista Networks, Inc.  All rights reserved.
# Arista Networks, Inc. Confidential and Proprietary.

import argparse
import os
import socket
import sys

import CliCommon

def parseArgs():
   parser = argparse.ArgumentParser()
   parser.add_argument( '-s', '--sysname', action='store',
                        default=os.environ.get( 'SYSNAME','ar' ),
                        help='system name (default: %s)' %
                             os.environ.get( 'SYSNAME', 'ar' ) )
   parser.add_argument( '--print-state', action='store_true', default=False,
                        help='Print the state of the CliServer' )
   return parser.parse_args()

def main():
   options = parseArgs()
   if not options.print_state:
      print 'Only CliCtrl --print-state is presently supported'
      sys.exit( 1 )

   # connect to the server
   sock = socket.socket( socket.AF_UNIX, socket.SOCK_STREAM, 0 )
   sock.connect( CliCommon.CLI_CTRL_ADDRESS_FMT % options.sysname )

   # we continue to receive output until the server disconnects
   while True:
      output = sock.recv( 1024 )
      if not output:
         break
      print output
   sock.close()

if __name__ == '__main__':
   main()
