
                            S r SSKJr  SSKJr  SSKrSSKrSSKrSSKJr  SSK	J
r
  SSK	Jr  SSK	Jr  SS	K	Jr  SS
K	Jr  SSKJr  SSKJr  SSKJr  S rS rS rS r\S:X  ag   \R4                  " SS5      r\R8                  " S\S9  SS0r\R<                  " 5       r\R@                  " \\5        \RB                  " S5        \" 5         gg! \" a  r#\RH                  " \#S5         Sr#C#gSr#C#ff = f)z*A convenience wrapper for starting gsutil.    )absolute_import)unicode_literalsN)
exceptions)config)context_aware)log)metrics)
properties)gce)encoding)filesc                 l    Uc  g U R                  S5        U R                  SR                  XUS95        g )Nz-oz{section}:{name}={value})sectionnamevalue)appendformat)argsr   r   r   s       bin/bootstrapping/gsutil.py_MaybeAddBotoOptionr      s:    
]
++d++(// 0 / 0    c                 H   [        U S5      (       a  U R                  $  [        R                  " U R                  5      n[
        R                  " U5      nSU;   a  US   $ g! [        R                   a,  n[        R                  " SU R                  U5         SnAgSnAff = f)z:Returns the cert provider command from the context config.cert_provider_commandz-context aware settings discovery file %s - %sN)
hasattrr   r   ReadFileContentsconfig_pathjsonloadsErrorr   debug)context_configcontentsjson_outes       r   _GetCertProviderCommandr%   #   s     ^455///-%%n&@&@AHzz(#H(*-.. +	 -II=((!- --s   A A! !B!5"BB!c                 d   [         R                  " 5       nU(       a)  UR                  [         R                  R                  :X  a  gU=(       a    [        USS5      n[        U SSU5        U(       a@  [        U5      n[        U[        5      (       a  SR                  U5      n[        U SSU5        gg)z*Adds device certificate settings for mTLS.Nuse_client_certificateTCredentials r   )r   Configconfig_type
ConfigTypeENTERPRISE_CERTIFICATEgetattrr   r%   
isinstancelistjoin)r   r!   r'   r   s       r   _AddContextAwareOptionsr2   3   s     ''). 

$
$		!	!	8	89   >n6=  dM+C,.3NC'..!hh'<=m-D-/ r   c                     / n [         R                  " 5       u  p[        R                  R                  R
                  R                  5       =(       a7    [        R                  R                  R                  R                  5       (       + n[        U SSU5        U(       Ga  [        R                  " [        R                  SS5        U[        R                  " 5       R!                  5       ;   a6  [        U SSS5        [        R                  " [        R                  SS5        GOk["        R$                  " 5       R'                  U5      n[        R(                  " [        R                  S	S
5      n[        R(                  " [        R                  SS
5      nU(       a!  [        R*                  R-                  XT/5      nOU(       a!  [        R*                  R-                  Xd/5      nO_S[        R.                  R1                  [        R.                  R-                  SS5      5      U/n[        R*                  R-                  U5      n[        R                  " [        R                  S	S5        [        R                  " [        R                  SU5        [        R                  " [        R                  S[2        R4                  " 5       5        [        R                  R6                  nUR8                  R;                  5       n	U	(       a  [        U SSU	5        [        U SSUR<                  R;                  5       5        [        U SSUR>                  R                  5       5        [        U SSUR@                  R;                  5       5        [        U SSURB                  R;                  5       5        [        R                  R                  RD                  R                  5       n
[        U SSU
c  SOU
(       + 5        [        U SS[        R                  R                  RF                  R;                  5       5        [I        U 5        [         RJ                  " SS/U Q76   g)zLaunches gsutil.GSUtildefault_project_id(CLOUDSDK_CORE_PASS_CREDENTIALS_TO_GSUTIL1GoogleComputeservice_accountdefault-CLOUDSDK_PASSED_GCE_SERVICE_ACCOUNT_TO_GSUTILBOTO_CONFIG 	BOTO_PATHz/etc/boto.cfg~z.botoNGA_CIDBotoproxy
proxy_port
proxy_rdns
proxy_user
proxy_passhttps_validate_certificatesca_certificates_fileplatform/gsutilgsutil)&bootstrappingGetActiveProjectAndAccountr
   VALUEScorepass_credentials_to_gsutilGetBoolauthdisable_credentialsr   r   SetEncodedValueosenvironc_gceMetadataAccountsr   PathsLegacyCredentialsGSUtilPathGetEncodedValuepathsepr1   path
expanduserr	   GetCIDIfMetricsEnabledrB   addressGetportrdnsusernamepassworddisable_ssl_validationcustom_ca_certs_filer2   ExecutePythonTool)r   projectaccountpass_credentialslegacy_config_pathboto_config	boto_path
path_partsproxy_paramsproxy_addressdisable_ssls              r   mainrs   N   s#    
$"==?'77??A ?



 
 
4
4
<
<
>>  dH&:GD 


>E %.."++-- $1BIN 
**EsL "<<>EEgN
 ,,RZZKk**2::{BGi	JJOO[$EF	JJOOY$CD	%gg((c7)CD(*
 JJOOJ/	rzz=$?rzz;	B jj(G::<> ""((,&&**,-fg}=flL4E4E4I4I4KLflL4E4E4M4M4OPflL4I4I4M4M4OPflL4I4I4M4M4OP !!&&==EEG+dF$A)1d;HdF$: '',,AAEEGI $ !!"3XEEr   __main__rI   VERSIONrJ   )versionupdatez(To update, run: gcloud components update)%__doc__
__future__r   r   r   rT   rK   googlecloudsdk.callioper   googlecloudsdk.corer   r   r   r	   r
   googlecloudsdk.core.credentialsr   rV   googlecloudsdk.core.utilr   r   r   r%   r2   rs   __name__r   rv   CommandStartblocked_commandsGetDecodedArgvargvWarnAndExitOnBlockedCommandCheckUpdates	Exceptionr$   HandleError r   r   <module>r      s    1 & '  	  . & - # ' * 8 - *0- /6KF\ z(,,->	JGx9 	< '')D--d4DE
 x(F! " 
 (1h''(s   $A%C C.C))C.