o
    Ü!d–  ã                   @   sD   d dl Z d dlmZ d dlmZ ddlmZmZ G dd„ deƒZdS )é    N)ÚBasicCommand)ÚConfigFileWriteré   )ÚPREDEFINED_SECTION_NAMESÚprofile_to_sectionc                       s|   e Zd ZdZe ddd¡ZdZe ddd¡Zdddd	d
dœdddd
d	d
dœgZ	g d¢Z
d‡ fdd„	Zdd„ Zdd„ Z‡  ZS )ÚConfigureSetCommandÚsetÚ	configurez_description.rstz8aws configure set varname value [--profile profile-name]z_examples.rstÚvarnamez$The name of the config value to set.ÚstoreÚstringT)ÚnameÚ	help_textÚactionÚcli_type_nameÚpositional_argÚvaluezThe value to set.)r   r   r   Zno_paramfiler   r   )Zaws_access_key_idZaws_secret_access_keyZaws_session_tokenNc                    s(   t t| ƒ |¡ |d u rtƒ }|| _d S ©N)Úsuperr   Ú__init__r   Ú_config_writer)ÚselfZsessionZconfig_writer©Ú	__class__© úGusr/lib/python3.10/site-packages/awscli/customizations/configure/set.pyr   +   s   
zConfigureSetCommand.__init__c                 C   s   | j  |¡}tj |¡S r   )Ú_sessionÚget_config_variableÚosÚpathÚ
expanduser)r   r   Zconfig_pathr   r   r   Ú_get_config_file1   s   z$ConfigureSetCommand._get_config_filec                 C   sh  |j }|j}d}d|vr| jjd ur| jj}nm| d¡}|d dv rL|d dkr1d}|dd … }n
|d }|dd … }|d }t|ƒdkrK|d |i}n8|d tvrz| jjd ur]| jj}n| j d¡}|d uri|}|d }t|ƒdkry|d |i}n
t|ƒdkr„|\}}|  d¡}	|| j	v r–|}
|  d	¡}	n|tv sž|dkr¡|}
nt
|ƒ}
d
|
||i}| j ||	¡ dS )NÚdefaultÚ.r   )r"   Úprofiler   é   r$   Úconfig_fileZcredentials_fileZ__section__)r
   r   r   r$   ÚsplitÚlenr   r   r!   Ú_WRITE_TO_CREDS_FILEr   r   Zupdate_config)r   ÚargsZparsed_globalsr
   r   r$   ÚpartsÚ	remainingZprofile_nameZconfig_filenameÚsectionZupdated_configr   r   r   Ú	_run_main5   sP   €
€
€

zConfigureSetCommand._run_mainr   )Ú__name__Ú
__module__Ú__qualname__ÚNAMEr   Z	FROM_FILEZDESCRIPTIONZSYNOPSISZEXAMPLESZ	ARG_TABLEr)   r   r!   r.   Ú__classcell__r   r   r   r   r      s.    ÿýüûr   )	r   Zawscli.customizations.commandsr   Z&awscli.customizations.configure.writerr   Ú r   r   r   r   r   r   r   Ú<module>   s
   