ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ C      

!"$"$ÿÛ C  ÿÂ p " ÿÄ              ÿÄ             ÿÚ    ÕÔË®
(%	aA*‚XYD¡(J„¡E¢RE,P€XYae )(E¤²€B¤R¥	BQ¤¢ X«)X…€¤   @  

  ..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     o
    &J^                     @   s>  d dl Z d dlZd dlZd dlZzd dlmZ W n	 ey!   Y nw dZe ddZ	e dZ
e de
d Ze d	d
ZdZg Zg Ze jde Zg dZdd Zdd Zdd Zdd Ze Ze jde Zeedksrered ede  ed ede	  eedkr?ejd d Zedk r>dZeD ]Zejdeef  ed7 ZqzNz
eded  Z W n ey   dZ Y nw e re dkrdZW njze!e ZW n ey   e!e"e ZY nw edkreek rW nJed7 ZdZej#d  W n8 e$y   ejd! e%d  Y n$ ey9   edks'edkr+dZY ned7 ZdZej#d  Y nw edk sn	eedkrHdZedkreed  dkrned
kree &ddd"e	g n"e &dde	g need  dkre &e	e	g neeed   ed
kre &d
d
g dS e &d#d#d$g dS )%    N)inputbyobuSHELLz	/bin/bashHOMEBYOBU_CONFIG_DIRz/.byobuBYOBU_BACKENDtmuxz%s/.reuse-session)DISPLAYDBUS_SESSION_BUS_ADDRESSSESSION_MANAGERGPG_AGENT_INFOXDG_SESSION_COOKIEXDG_SESSION_PATHGNOME_KEYRING_CONTROLGNOME_KEYRING_PIDr   SSH_ASKPASSSSH_AUTH_SOCKSSH_AGENT_PIDWINDOWIDUPSTART_JOBUPSTART_EVENTSUPSTART_SESSIONUPSTART_INSTANCEc               
   C   s  g } d}d}t dkrztjddgtjd d }W n tjy6 } z|jdkr) |j}W Y d }~nd }~ww tj	j
d u rC|d}n|tj	j
}|r| D ]E}tdd	|}|r|d	kr|d	dkrt|dkr|d
dkr|ddkrtd|   |d	}| d|d   |d7 }qPt dkrtjddgtjd d }tj	j
d u r|d}n|tj	j
}|r| D ])}|r|ds|ddkrtd|   | d|dd   |d7 }q| S )Nr   Fscreenz-lsstdout   UTF-8z\s+ z..z._z
screen: %szscreen____%sr   list-sessions_-r	   ztmux: %sz
tmux____%s:)r   
subprocessPopenPIPEcommunicateCalledProcessError
returncodeoutputsysr   encodingdecode
splitlinesresubfindlencounttextappendstripsplit
startswith)sessionsir*   cpesitems r>   (/usr/lib/byobu/include/select-session.pyget_sessions0   sJ    
B
r@   c              	   C   s   t dkr[tjddgtjd d }tjjd u r|d}n|tjj}|s)d S d|  }t	
||t	j}|s9d S d| |df }t	||t	jD ]}tdd	d
|dd g qJd S d S )Nr   r    r   r   r   z^%s:.+\((group [^\)]+)\).*$z^_%s-\d+:.+\(%s\)$r   zkill-session-tr#   )r   r$   r%   r&   r'   r+   r   r,   r-   r/   search	MULTILINEgroupfindallr7   )session_namer*   patternmasterr<   r>   r>   r?   cull_zombiesZ   s    rI   c                 C   sn   |  dd\}}tD ]*}t|}|r4|dkr ddd|||g}n	dd|dd||g}tj|ttjd	d
 q
d S )N____   r   setenvrA   r   z-Sz-Xwr   )r7   BYOBU_UPDATE_ENVVARSosgetenvr$   callopendevnull)sessionbackendrF   varvaluecmdr>   r>   r?   update_environmentu   s   
rY   c                 C   s|   t |  | dd\}}t| |dkr3tr&tddddd|ddd	g d S tdddd
d|g d S tddd|g d S )NrJ   rK   r   z-unew-sessionrA   ;z
set-optionzdestroy-unattachedattachr   -AOxRR)rY   r7   rI   reuse_sessionsrO   execvp)rT   rU   rF   r>   r>   r?   attach_session   s    r`   z%s/.always-selectr   NEWzCreate a new Byobu session (%s)zRun a shell without Byobu (%s)z
Byobu sessions...

   z	  %d. %s
z
Choose 1-%d [1]:  z
ERROR: Invalid input

rZ   r   r]   )'rO   r/   r+   r$   builtinsr   	ExceptionPKGrP   r   r   r   r   choicer9   r4   pathexistsr^   rN   r@   rI   rY   r`   
show_shellr2   r5   r   writetriesr:   r<   
user_inputintevalstderrKeyboardInterruptexitr_   r>   r>   r>   r?   <module>   s   
*



!


