o
    !	                     @   sb   d Z ddlmZ ddlmZ ddlmZ ddlZddlmZ ddlmZ g dZ	d	gZ
d
d ZdS )z2Decide whether launching a browser is a good idea.    )absolute_import)division)unicode_literalsN)encoding)	platforms)DISPLAYWAYLAND_DISPLAY
MIR_SOCKETzwww-browserc                 C   s   ddl }| }|rEtj }|tjju rtdd tD sd}z| }t|dr2|j	t
v r5d}W |S W |S W |S  |jyD   d}Y |S w |S )a)  Determines if a browser can be launched.

  Args:
    attempt_launch_browser: bool, True to launch a browser if it's possible in
      the user's environment; False to not even try.

  Returns:
    True if the tool should actually launch a browser, based on user preference
    and environment.
  r   Nc                 s   s    | ]
}t tj|V  qd S )N)r   GetEncodedValueosenviron).0var r   J/tmp/google-cloud-sdk/lib/googlecloudsdk/command_lib/util/check_browser.py	<genexpr>:   s    z&ShouldLaunchBrowser.<locals>.<genexpr>Fname)
webbrowserr   OperatingSystemCurrentLINUXany_DISPLAY_VARIABLESgethasattrr   _WEBBROWSER_NAMES_BLOCKLISTError)attempt_launch_browserr   launch_browser
current_osbrowserr   r   r   ShouldLaunchBrowser'   s2   


r!   )__doc__
__future__r   r   r   r   googlecloudsdk.core.utilr   r   r   r   r!   r   r   r   r   <module>   s   