
                             S r SSKJr  SSKJr  SSKJr  SSKrSSKrSSKJr   " S S\R                  5      r
 " S	 S
\R                  5      r " S S\R                  5      rg)z9Custom argument parsers for Certificate Manager commands.    )absolute_import)division)unicode_literalsN)arg_parsersc                      ^  \ rS rSrSr\R                  " S\R                  \R                  -  5      r	U 4S jr
U 4S jrSrU =r$ )PemCertificatesFile   zReads file from provided path, extracts all PEM certificates from that file, and packs them into a message format appropriate for use in the Trust Store.zY-----BEGIN CERTIFICATE-----\s*[\r\n|\r|\n][\w\s+/=]+[\r\n|\r|\n]-----END CERTIFICATE-----c                 (   > [         [        U ]  SS9  g )NF)binary)superr   __init__)self	__class__s    Alib/googlecloudsdk/command_lib/certificate_manager/arg_parsers.pyr   PemCertificatesFile.__init__%   s    	
t-U-;    c                    > [         [        U ]  U5      nU R                  R	                  U5      nU Vs/ s H  nSU0PM	     sn$ s  snf )NpemCertificate)r   r   __call__PEM_REfindall)r   namefile_contentscertscertr   s        r   r   PemCertificatesFile.__call__(   sG    -t=dCMKK.E167t$777s   A )__name__
__module____qualname____firstlineno____doc__recompileDOTALLASCIIr   r   r   __static_attributes____classcell__r   s   @r   r   r      s=     b::# 	ii"((	&<8 8r   r   c                   8   ^  \ rS rSrSrU 4S jrU 4S jrSrU =r$ )*SemicolonSeparatedPemCertificatesFilesList.   /Reads PEM certificates from all provided files.c                 D   > [         [        U ]
  " S[        5       SS.UD6  g)FInitialize the parser.

Args:
  **kwargs: Passed verbatim to ArgList.
;element_typecustom_delim_charNr   )r   r+   r   r   r   kwargsr   s     r   r   3SemicolonSeparatedPemCertificatesFilesList.__init__1   s-     

4dD (* r   c                 z   > [         [        U ]  U5      n[        [        R
                  R                  U5      5      $ N)r   r+   r   list	itertoolschainfrom_iterabler   	arg_valuevaluer   s      r   r   3SemicolonSeparatedPemCertificatesFilesList.__call__=   s4    <dLE 	--e455r   r   	r   r   r    r!   r"   r   r   r'   r(   r)   s   @r   r+   r+   .       7
6 6r   r+   c                   8   ^  \ rS rSrSrU 4S jrU 4S jrSrU =r$ )&CommaSeparatedPemCertificatesFilesListD   r-   c                 D   > [         [        U ]
  " S[        5       SS.UD6  g)r/   ,r1   Nr   )r   rD   r   r   r4   s     r   r   /CommaSeparatedPemCertificatesFilesList.__init__G   s-     

0$@ (* r   c                 z   > [         [        U ]  U5      n[        [        R
                  R                  U5      5      $ r8   )r   rD   r   r9   r:   r;   r<   r=   s      r   r   /CommaSeparatedPemCertificatesFilesList.__call__S   s4    8$HE 	--e455r   r   rA   r)   s   @r   rD   rD   D   rB   r   rD   )r"   
__future__r   r   r   r:   r#   googlecloudsdk.callioper   FileContentsr   ArgListr+   rD   r   r   r   <module>rO      sS    @ &  '  	 /8+22 8&61D1D 6,6[-@-@ 6r   