
<4Ic           @   s  d  d l  Z  e  j d k  r. d  d l m Z n  d  d l Z d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l	 Z	 d  d l
 Z
 d  d l Z d  d l Z d  d l m Z d  d l Z d  d l Z d  d l Te  j d k Z d e f d     YZ d	 e f d
     YZ e rd pd Z y2 d  d l m Z d  d l Z d e _ d   Z WnR e k
 ry d  d l m Z Wn! e k
 rd  d l m Z n Xd   Z n Xd e f d     YZ d d d  Z  e re  Z! d d d  Z  n  e j" Z" e rd   Z# e# Z" n  d d d  Z$ d   Z% d   Z& d   Z' i  Z( d a) e* d  Z+ d   Z, d    Z- d!   Z. y( d  d l/ Z/ d  d l0 Z0 d  d l1 Z1 Wn e k
 rnA Xe  j2 j3   rd"   Z4 y e4   Wn e5 k
 rqXe4 Z. n  d# Z6 d$ d% d& d' g Z7 d(   Z8 e rd)   Z8 d*   Z9 n  e: d+  Z; d,   Z< d a= d-   Z> d.   Z? d/   Z@ d0   ZA d1   ZB e jC e jD e jE e jF e jG e jH f ZI d2   ZJ d3 d4  ZK d5   ZL d e: d6  ZM e jN d7  ZO d8   ZP d9   ZQ d S(:   iNi (   t   Set(   t   UserDict(   t   *t   win32t   WafErrorc           B   s   e  Z d    Z d   Z RS(   c         G   s,   | |  _  t j   |  _ t j |  |  d  S(   N(   t   argst	   tracebackt   extract_stackt   stackt	   Exceptiont   __init__(   t   selfR   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR
      s    	c         C   s/   t  t |  j  d k r% |  j d p+ |  j  S(   Ni   i    (   t   strt   lenR   (   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   __str__   s    (   t   __name__t
   __module__R
   R   (    (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR   
   s   	t   WscriptErrorc           B   s   e  Z d d   Z d   Z RS(   c         C   s   | r | |  _  d  |  _ n |  j   \ |  _  |  _ d } |  j  ro d |  j  } |  j ro | d |  j 7} qo n  d | | f } t j |  |  d  S(   Nt    s   %s:s   %s error: %s(   t   wscript_filet   Nonet   wscript_linet   locate_errorR   R
   (   R   t   messageR   t   msg_file_linet   err_message(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR
      s    			c         C   sq   t  j   } | j   xT | D]L } t j j | d  } | t k pN | t k } | r | d | d f Sq Wd S(   Ni    i   (   NN(	   R   R   t   reverset   ost   patht   basenamet   WSCRIPT_FILEt   WSCRIPT_BUILD_FILER   (   R   R   t   framet	   file_namet
   is_wscript(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR      s    
N(   R   R   R   R
   R   (    (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR      s   s   [A[K%s%s%ss
   [K%s%s%s(   t   newt   signofnvc         C   sg   t    } y9 | j |   | j   } | d  k r= t d  n  | SWn t k
 rb t d |   n Xd  S(   Ns
   not a file(   t   md5t   hfilet   digestR   t   OSErrort   SystemError(   t   filenamet   mt   x(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   h_file-   s    	 (   R%   c         C   sg   t  |  d  } t   } d } x2 | rR | j |  } | j |  t |  } q! W| j   | j   S(   Nt   rbi (   t   fileR%   t   readt   updateR   t   closeR'   (   R*   t   fR+   t	   readBytest
   readString(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR-   ;   s    		
t   ordered_dictc           B   s&   e  Z d d   Z d   Z d   Z RS(   c         C   s   g  |  _  t j |  |  d  S(   N(   t   allkeysR   R
   (   R   t   dict(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR
   F   s    	c         C   s$   |  j  j |  t j |  |  d  S(   N(   R7   t   removeR   t   __delitem__(   R   t   key(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR:   I   s    c         C   s9   | |  j  k r" |  j  j |  n  t j |  | |  d  S(   N(   R7   t   appendR   t   __setitem__(   R   R;   t   item(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR=   L   s     N(   R   R   R   R
   R:   R=   (    (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR6   E   s   	i   c         C   s+   t  j |  d | d | d | } | j   S(   Nt   shellt   stdoutt   stderr(   t   pproct   Popent   wait(   t   sR?   t   logt   proc(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   exec_commandO   s    !c         C   sk   t  |   d k  r( t |  d | d | St j   } | j t j O_ t j |  d t d | } | j   S(   Ni  R?   RF   t   startupinfo(	   R   t   old_logRB   t   STARTUPINFOt   dwFlagst   STARTF_USESHOWWINDOWRC   t   FalseRD   (   RE   R?   RF   RI   RG   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyRH   T   s     c         C   s_   t  j d |   r" |  t j 7}  n  t j j |   sR t   } t j | _ |  n  t j	 |   S(   Ns   ^[A-Z]:$(
   t   ret   matchR   t   sepR   t   isdirR(   t   errnot   ENOENTt   listdir(   RE   t   e(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   listdir_win32\   s    		i   i   c         C   s   t  } y |  d } Wn, t k
 rB t |  j d d  d  } n X| | k rv t j d |  | f  t j d  n  y | d } Wn, t k
 r t | j d d  d  } n X| | k  r t j d | | f  t j d  n  d  S(   Ni    t   .t   0i   s,   waf version should be at least %s (%s found)s+   waf version should be at most %s (%s found)(   t
   HEXVERSIONt	   TypeErrort   intt   replacet   Logst   errort   syst   exit(   t   minit   maxit   vert   min_valt   max_val(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   waf_versione   s        c           C   s   t  j d k  r t d  n  d  S(   Ni sA   Waf requires Python >= 2.3 but the raw source requires Python 2.4(   R`   t
   hexversiont   ImportError(    (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   python_24_guardq   s    c          C   s7   t  j   \ }  } } t j |  | |  } d j |  S(   NR   (   R`   t   exc_infoR   t   format_exceptiont   join(   t   exc_typet	   exc_valuet   tbt	   exc_lines(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   ex_stackt   s    c         C   s'   t  |   t j k r |  S|  j   Sd  S(   N(   t   typet   typest   ListTypet   split(   t   sth(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   to_listx   s    c         B   s   y e  |  SWn e k
 r n Xe j |  } y e |  d  } Wn' e e f k
 rk e d |    n Xe j	 j
 |   } e j	 j d |  | | j Ue j	 j |  | r | j   n  | e  |  <| S(   Nt   rs    The file %s could not be opened!i    (   t   g_loaded_modulest   KeyErrort   impt
   new_modulet   opent   IOErrorR(   R   R   R   t   dirnameR`   t   insertt   __dict__R9   R2   (   t	   file_patht   namet   moduleR/   t
   module_dir(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   load_module   s"     
c         C   s   t  |  d  a d  S(   Nt   wscript_main(   R   t   g_module(   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   set_main_module   s    c         C   sW   i  } |  j  d  } x; | D]3 } | s. q n  | j  d  } | d | | d <q W| S(   Ns   
t   =i   i    (   Rv   (   RE   t   tblt   lstt   linet   mems(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   to_hashtable   s     c           C   s   d S(   NiP   (    (    (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   get_term_cols   s    c          C   sP   t  j d t j t j j   t j t  j	 d d d d d    d  \ }  } | S(   Nt   HHHHi    i   (
   t   structt   unpackt   fcntlt   ioctlR`   R@   t   filenot   termiost
   TIOCGWINSZt   pack(   t   dummy_linest   cols(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   myfun   s    Li    s   \t   |t   /t   -c         C   s   |  s d g S|  j  d  S(   NR   R   (   Rv   (   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt
   split_path   s     c         C   s=   t  j j |   \ } } | s( t |  S| g t |  d S(   Ni   (   R   R   t   splitunct   __split_dirs(   R   t   ht   t(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR      s     
c         C   si   t  j j |   \ } } | s% | g S| |  k rD | j d d  g S| sT t |  St |  | g Sd  S(   Ns   \R   (   R   R   Rv   R]   R   (   R   R   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyR      s       
c         C   sM   xF t  |  D]8 } t |  | d  } | s2 | r t | | |  q q Wd  S(   N(    (   Rx   t   getattrt   setattr(   t   origt   destt   namest   only_if_sett   at   u(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt
   copy_attrs   s    c         K   sC   x< | j    D]. \ } } t |  |  s t |  | |  q q Wd  S(   N(   t	   iteritemst   hasattrR   (   R   t   kwt   kt   v(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt	   def_attrs   s    c         C   s   t  sm t g  t d  D] } t |  ^ q  t t j t j  } t j d j |  d t	 |   a  n  t j
 t j |   t   S(   Ni   R   t   _(   t   quote_define_name_tablet   sett   xranget   chrt   stringt   digitst	   uppercaset	   maketransRm   R   t	   translatet   upper(   R   R,   t   invalid_chars(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   quote_define_name   s    ?(c         C   s5   |  j    j d  d k r% d |  p( |  j d d  S(   Nt    i    s   "%s"s   ""t   "(   t   stript   findR]   (   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   quote_whitespace   s    c         C   sE   |  s
 d S|  j    }  |  d d k rA |  d d k rA |  d d !S|  S(   NR   i    t   'ii   (   t   rstrip(   RE   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt
   trimquotes   s       c         C   s&   t    } | j t |    | j   S(   N(   R%   R1   R   R'   (   R   R+   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   h_list   s    	c         C   sr   y |  j  SWn` t k
 rm y t j |   } Wn t k
 rG d } n Xy | |  _  Wn t k
 rh n X| SXd  S(   Nt   nocode(   t   codet   AttributeErrort   inspectt	   getsourceR   (   t   funR   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   h_fun   s    
c         C   s   t  |  t j k s t  xw | j j   D]f \ } } t  |  t k rO q+ n  t | t   rd q+ n  y t |  | | f  }  Wq+ t	 k
 r q+ Xq+ Wt |  t
 j |  f  S(   N(   Rs   Rt   t   FunctionTypet   AssertionErrort   func_globalsR   t   _hash_blacklist_typest
   isinstancet   hashR[   R   R   (   t   prevhasht   funcR   t   value(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   hash_function_with_globals   s    R   c         C   s(   d t  j |   | t  j j | f GHd  S(   Ns	   %s%s%s %s(   R^   t   colorst   NORMAL(   t   colR   t   label(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   pprint   s    c         C   sf   y t  j |   WnN t k
 ra y t  j |   Wqb t k
 r] } t d |  | f   qb Xn Xd  S(   Ns.   Cannot create folder '%s' (original error: %s)(   R   t   statR(   t   makedirsR   (   t   dirRV   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt	   check_dir   s    c         C   sr   t  j |  d t  j d t d | } | j   d } | j rn | se d |  t |  f } t |  n  d } n  | S(   NR@   R?   t   envi    s"   command execution failed: %s -> %rR   (   RB   RC   t   PIPEt   Truet   communicatet
   returncodeR   t
   ValueError(   t   cmdRV   t   silentt   pt   outputt   msg(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt
   cmd_output   s    $		s   (\\\\)|(\\\$)|\$\{([^}]+)\}c            s     f d   } t  j | |   S(   Nc            s7   |  j  d  r d S|  j  d  r& d S  |  j  d  S(   Ni   s   \i   t   $i   (   t   group(   R+   (   t   params(    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   repl_var  s
    (   t	   reg_substt   sub(   t   exprR   R   (    (   R   sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt
   subst_vars  s    c          C   sY   t  j }  x- d j   D] } |  j |  d k r | Sq Wt j d j   k rU t j S|  S(   Ns'   cygwin linux irix sunos hpux aix darwini    s   posix java os2(   R`   t   platformRv   R   R   R   (   RE   R,   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   detect_platform  s    	(R   R`   Rh   t   setsR    R   R   R|   Rt   R   RS   R   R   RO   R   R^   RB   t	   ConstantsR   t   is_win32R	   R   R   t	   indicatort   fnvR#   R%   t   SIG_NILR-   Ri   t   hashlibR6   R   RH   RJ   RU   RW   Rg   Rj   Rr   Rx   Rz   R   R   R   R   R   R   R   R   R   R@   t   isattyR   R   t   rot_idxt   rot_chrR   R   RN   R   R   R   R   R   R   R   R   t   BuiltinFunctionTypet
   ModuleTypeR   t	   ClassTypet   TypeTypet   NoneTypeR   R   R   R   R   t   compileR   R   R   (    (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Utils.pyt   <module>   s    l
		

									(										*				