File: //proc/thread-self/root/lib/python3/dist-packages/keyring/__pycache__/cli.cpython-38.pyc
U
ܦ�\� � @ s� d Z ddlmZ ddlZddlmZ ddlZddlmZ ddlm Z ddlm
Z
mZmZm
Z
eZG d d
� d
�Zddd�Zed
kr�e�e� � dS )z@Simple command line interface to get/set password from a keyring� )�print_functionN)�OptionParser� )�core)�backend)�set_keyring�get_password�set_password�delete_passwordc @ sD e Zd Zdd� Zdd� Zdd� Zedd� �Zed d
� �Z dd� Z
d
S )�CommandLineToolc C s` t dd�| _| jjdddd dd� | jjdd d
d dd� | jjdd
dd� | jjdd
dd� d S )Nz$%prog [get|set|del] SERVICE USERNAME)Zusagez-pz--keyring-path�keyring_pathzPath to the keyring backend)�dest�default�helpz-bz--keyring-backend�keyring_backendzName of the keyring backendz--list-backends�
store_truezList keyring backends and exit)�actionr z --disablezDisable keyring and exit)r �parserZ
add_option)�self� r �-/usr/lib/python3/dist-packages/keyring/cli.py�__init__ s* �
�
���zCommandLineTool.__init__c
C s� | j �|�\}}|jr0t�� D ]}t|� qd S |jrBt�� d S z|\}}}W n< tk
r� t |�dkr|| j �
� Y dS | j �d� Y nX |jd k r�z*|j
r�tj�d|j
� tt�|j�� W n2 tfk
r� t�� d }| j �d| � Y nX |dk�r&t||�} | d k�rdS | �| � dS |dk�rR| �d||f �} t||| � dS |dk�r|| �d ||f �} t||� dS | j �d
� d S )Nr r zWrong number of argumentsz$Unable to load specified keyring: %s�get�setzPassword for '%s' in '%s': �delz$Deleting password for '%s' in '%s': z.You can only 'get', 'del' or 'set' a password.)r �
parse_argsZ
list_backendsr Zget_all_keyring�print�disabler �
ValueError�lenZ
print_help�errorr r �sys�path�insertr Zload_keyring� Exception�exc_infor �output_password�input_passwordr r
)
r �argvZopts�args�kZkind�serviceZusername�e�passwordr r r �run# sZ
�
��
zCommandLineTool.runc C s | � � pt�|�S )z&Retrieve password from input.
)�pass_from_pipe�getpass)r �promptr r r r'