← Back
Editing: 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'