ó
è?F[c           @  sƒ   d  d l  m Z d  d l Z d  d l Z y" d  d l Z d  d l Z e Z Wn e k
 rc e	 Z n Xd „  Z
 d „  Z d „  Z d S(   iÿÿÿÿ(   t   print_functionNc         C  s!   t  r t |  ƒ n
 t |  ƒ d  S(   N(   t   has_termiost   posix_shellt   windows_shell(   t   chan(    (    s7   lib/python2.7/site-packages/boto/mashups/interactive.pyt   interactive_shell    s    c         C  ss  d d  l  } t j t j ƒ } z4t j t j j ƒ  ƒ t j t j j ƒ  ƒ |  j	 d ƒ xô t
 rP| j  |  t j g g  g  ƒ \ } } } |  | k ryV |  j d ƒ } t | ƒ d k rÎ t d d d ƒPn  t j j | ƒ t j j ƒ  Wqt j k
 rqXn  t j | k r] t j j d ƒ } t | ƒ d k r=Pn  |  j | ƒ q] q] WWd  t j t j t j | ƒ Xd  S(	   Niÿÿÿÿg        i   i    s   
*** EOF
t   endt    i   (   t   selectt   termiost	   tcgetattrt   syst   stdint   ttyt   setrawt   filenot	   setcbreakt
   settimeoutt   Truet   recvt   lent   printt   stdoutt   writet   flusht   sockett   timeoutt   readt   sendt	   tcsetattrt	   TCSADRAIN(   R   R   t   oldttyt   rt   wt   et   x(    (    s7   lib/python2.7/site-packages/boto/mashups/interactive.pyR   '   s0    	'c         C  sœ   d d  l  } t j j d ƒ d „  } | j d | d |  f ƒ } | j ƒ  y: x3 t r‚ t j j d ƒ } | sr Pn  |  j	 | ƒ qP WWn t
 k
 r— n Xd  S(   NiÿÿÿÿsA   Line-buffered terminal emulation. Press F6 or ^Z to send EOF.

c         S  sd   x] t  r_ |  j d ƒ } | s? t j j d ƒ t j j ƒ  Pn  t j j | ƒ t j j ƒ  q Wd  S(   Ni   s   
*** EOF ***

(   R   R   R   R   R   R   (   t   sockt   data(    (    s7   lib/python2.7/site-packages/boto/mashups/interactive.pyt   writeallL   s    	t   targett   argsi   (   t	   threadingR   R   R   t   Threadt   startR   R   R   R   t   EOFError(   R   R)   R&   t   writert   d(    (    s7   lib/python2.7/site-packages/boto/mashups/interactive.pyR   G   s    	

	(   t
   __future__R    R   R   R	   R   R   R   t   ImportErrort   FalseR   R   R   (    (    (    s7   lib/python2.7/site-packages/boto/mashups/interactive.pyt   <module>   s   

		 