← Back
Editing: cli.cpython-311.pyc
� %�cT � � � d Z ddlZddlZddlZddlmZ ddlmZ ddlmZmZm Z m Z G d� d� � Zdd �Ze d k r ej e� � � � dS dS )z@Simple command line interface to get/set password from a keyring� N� )�core)�backend)�set_keyring�get_password�set_password�delete_passwordc �p � e Zd Zd� Zd� Zd� Zd� Zd� Zd� Zd� Z d� Z d � Zed � � � Z ed� � � ZdS ) �CommandLineToolc �� � t j � � | _ | j � dddd d�� � | j � dddd d �� � | j � d dd� � � | j � ddd� � � | j � ddd�� � | j � dd�� � | j � dd�� � d S )Nz-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� operationzget|set|del�?)r �nargs�service)r �username)�argparse�ArgumentParser�parser�add_argument��selfs �-/usr/lib/python3/dist-packages/keyring/cli.py�__init__zCommandLineTool.__init__ sE � ��-�/�/����� � �����.� !� � � � �� � ���"��.� !� � � � �� � ���1� !� � � � �� � ���3M� !� � � � �� � ���� !� � � � �� � ��� !� � � � �� � ��� !� � � � � � c �� � | j � |� � }t | � � � t |� � � � |j r't j � � D ]}t |� � �d S |j rt j � � d S | � � � | � � � t | d| j � �| j � � } |� � S )N�do_)r � parse_args�vars�update� list_backendsr �get_all_keyring�print�disabler �_check_args�_load_spec_backend�getattrr � invalid_op)r �argv�args�k�methods r �runzCommandLineTool.run4 s� � ��{�%�%�d�+�+���T� � ���$�t�*�*�%�%�%��� ��,�.�.� � ���a������F��<� ��L�N�N�N��F����������!�!�!���5�T�^�5�5�t��G�G���v�x�x�r! c �| � | j r2| j �| j �&| j � | j � d�� � d S d S d S )Nz requires service and username)r r r r �errorr s r r+ zCommandLineTool._check_argsF sU � ��>� U��|�#�t�}�'<���!�!�T�^�"S�"S�"S�T�T�T�T�T� U� U�'<�'<r! c �z � t | j | j � � }|�t d� � �t |� � d S )Nr )r r r � SystemExitr) �r �passwords r �do_getzCommandLineTool.do_getK s6 � ����d�m�<�<�����Q�-�-�� �h�����r! c � � | � d| j � d| j � d�� � }t | j | j |� � d S )NzPassword for 'z' in 'z': )�input_passwordr r r r8 s r �do_setzCommandLineTool.do_setQ sO � ��&�&�C�T�]�C�C�$�,�C�C�C� � �� �T�\�4�=�(�;�;�;�;�;r! c �: � t | j | j � � d S �N)r r r r s r �do_delzCommandLineTool.do_delW s � ����d�m�4�4�4�4�4r! c �: � | j � d� � d S )Nz)Specify operation 'get', 'del', or 'set'.)r r5 r s r r. zCommandLineTool.invalid_opZ s � �����E�F�F�F�F�Fr! c �* � | j �d S | j r%t j � d| j � � t t j | j � � � � d S # t f$ r(}| j � d|� �� � Y d }~d S d }~ww xY w)Nr z"Unable to load specified keyring: )r r �sys�path�insertr r �load_keyring� Exceptionr r5 )r �excs r r, z"CommandLineTool._load_spec_backend] s� � ���'��F� J�� � 6������4�#4�5�5�5���)�$�*>�?�?�@�@�@�@�@���|� J� J� J� �K���H�3�H�H�I�I�I�I�I�I�I�I�I����� J���s �AA �B�*B � Bc �R � | � � � pt j |� � S )zRetrieve password from input.)�pass_from_pipe�getpass)r �prompts r r<