o &ŸJ^¥ã@s>ddlZddlZddlZddlZzddlmZWn ey!YnwdZe dd¡Z e d¡Z e de d¡Z e d d ¡Z d Z gZgZej d e ¡Zgd ¢Zdd„Zdd„Zdd„Zdd„ZeƒZej de ¡ZeeƒdksrerŠe d¡e de ¡e d¡e de ¡eeƒdkr?ej d¡dZedkr>dZeD]Zej deef¡ed7Zq¢zNz ededƒZ Wn eyÉdZ Ynwe rÐe dkrÔdZ Wnjze!e ƒZ Wneyée!e"e ƒƒZ Ynwe dkrôe ekrôWnJed7Zd Z ej# d ¡Wn8e$yej d!¡e %d¡Yn$ey9e dks'e d kr+dZ Yned7Zd Z ej# d ¡Ynwedksžn eeƒdkrHdZ e dkr‡ee ddkrne d kree &ddd"e g¡n"e &dde g¡nee ddkre &e e g¡neee dƒe d kr•e &d d g¡dSe &d#d#d$g¡dS)%éN)ÚinputÚbyobuÚSHELLz /bin/bashÚHOMEÚBYOBU_CONFIG_DIRz/.byobuÚ BYOBU_BACKENDÚtmuxéÿÿÿÿz%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 CsÚg}d}d}tdkr–ztjddgtjd ¡d}Wntjy6}z|jdkr)‚|j}WYd}~nd}~wwtj j durC|  d¡}n|  tj j ¡}|r–|  ¡D]E}t  dd |¡}|r•|d kr•| d ¡dkr•t|ƒdkr•| d ¡dkr•| d ¡dkr•t d | ¡¡| d ¡}| d |d¡|d7}qPtdkrëtjddgtjd ¡d}tj j dur´|  d¡}n|  tj j ¡}|rë|  ¡D])}|rê| d¡sê| d¡dkrêt d| ¡¡| d| d¡d¡|d7}qÁ|S)NrFÚscreenz-ls©ÚstdoutéúUTF-8z\s+ú z..z._z screen: %sz screen____%srú list-sessionsÚ_ú-r ztmux: %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_sessions0sJ  €û   B €   €r@c Cs¾tdkr[tjddgtjd ¡d}tjjdur| d¡}n| tjj¡}|s)dSd|}t   ||t j ¡}|s9dSd||  d¡f}t   ||t j ¡D]}t dd d | d ¡dg¡qJdSdS) Nrr rrrz^%s:.+\((group [^\)]+)\).*$z^_%s-\d+:.+\(%s\)$rz kill-sessionú-tr#)rr$r%r&r'r+rr,r-r/ÚsearchÚ MULTILINEÚgroupÚfindallr7)Ú session_namer*ÚpatternÚmasterr<r>r>r?Ú cull_zombiesZs   ìrIcCsn| dd¡\}}tD]*}t |¡}|r4|dkr ddd|||g}n dd|dd||g}tj|ttjd ƒd q dS) NÚ____érÚsetenvrArz-Sz-XÚwr)r7ÚBYOBU_UPDATE_ENVVARSÚosÚgetenvr$ÚcallÚopenÚdevnull)ÚsessionÚbackendrFÚvarÚvalueÚcmdr>r>r?Úupdate_environmentus €ùrYc Cs|t|ƒ| dd¡\}}t|ƒ|dkr3tr&t ddddd|ddd g¡dSt dddd d|g¡dSt d d d |g¡dS) NrJrKrz-uú new-sessionrAú;z set-optionzdestroy-unattachedÚattachrú-AOxRR)rYr7rIÚreuse_sessionsrOÚexecvp)rTrUrFr>r>r?Úattach_sessions r`z%s/.always-selectrÚNEWzCreate a new Byobu session (%s)zRun a shell without Byobu (%s)z Byobu sessions... éz %d. %s z Choose 1-%d [1]: Úz ERROR: Invalid input Ú rZrr])'rOr/r+r$ÚbuiltinsrÚ ExceptionÚPKGrPrrrrÚchoicer9r4ÚpathÚexistsr^rNr@rIrYr`Ú show_shellr2r5rÚwriteÚtriesr:r<Ú user_inputÚintÚevalÚstderrÚKeyboardInterruptÚexitr_r>r>r>r?Ús¦ þ   *       ÿ   ÿ úæ€!