File: //opt/alt/python37/lib/python3.7/site-packages/pyroute2/cli/__pycache__/console.cpython-37.pyc
B
��f� � @ s` d dl Z d dlZd dlZd dlZd dlmZ d dlmZ G dd� de j�Z e
dkr\e � �� dS )� N)�Session)�NDBc @ sZ e Zd Zddd�Zdd� Zdd� Zddd �Zd
d� Zddd
�Zdd� Z dd� Z
dd� ZdS )�ConsoleNc C sr t ||d�| _| jj�ddd�� |p*tj| _t| j| j| j�| _g | _ tj
�� | _d| _| �� t
j�| � d S )N)�log�sources�json�true)Zshow_formatZrecordset_pipe� )r �db�config�update�sys�stdoutr �
set_prompt�session�matches�stdin�isatty�prompt�code�InteractiveConsole�__init__)�selfr r r � r �E/opt/alt/python37/lib/python3.7/site-packages/pyroute2/cli/console.pyr s zConsole.__init__c C s | j �� d S )N)r
�close)r r r r r s z
Console.closec C s | j �d� d S )Nz}Built-in commands:
exit -- exit cli
ls -- list current namespace
. -- print the current object
.. or Ctrl-D -- one level up
)r �lprint)r r r r �help s zConsole.helpc C sT | j rP|d k rd| | _nd| jjjj | _dt�� t� � �
d�d | jf | _d S )Nz%s > z
%s@%s : %s�.r )r r r �ptr� __class__�__name__�getpass�getuser�socket�gethostname�split)r r r r r r $ s zConsole.set_promptc C s* t |d��}| j�|�� � W d Q R X d S )N�r)�openr �handle�read)r �fname�fr r r �loadrc0 s zConsole.loadrcc C s� | j r|d kr| j�d� |d kr(| j}d}x�y|| j�}W nP tk
rp | jjrb| j�� w.n
| �� P Y n t k
r� | �� P Y nX y| j�
||�}W q. tk
r� | �� d S | �� w.Y q.X q.W d S )Nzpyroute2 cli prototyper )
r r r � raw_inputr �EOFError�stackZ stack_popr � Exceptionr) �
SystemExitZ
showtraceback)r Zreadfunc�indent�textr r r �interact4 s2
zConsole.interactc C s&