
<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 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 Z d  d l Z d  d l m Z m Z m Z d  d l Td j   Z i  Z d a  d e j! f d     YZ" d	 e# f d
     YZ$ d S(   iNi (   t   Set(   t   debugt   errort   info(   t   *sD   root srcnode bldnode node_sigs node_deps raw_deps task_sigs id_nodest
   BuildErrorc           B   s    e  Z d g  d   Z d   Z RS(   c         C   s8   | |  _  | |  _ d |  _ t j j |  |  j    d  S(   Ni   (   t   bldt   taskst   rett   Utilst   WafErrort   __init__t   format_error(   t   selft   bt   t(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR      s    			c         C   sL   d g } x3 |  j  D]( } | j   } | r | j |  q q Wd j |  S(   Ns   Build faileds   
(   R   R   t   appendt   join(   R   t   lstt   tskt   txt(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR      s    	 N(   t   __name__t
   __module__t   NoneR   R   (    (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR      s   t   BuildContextc           B   sj  e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d# d# d	  Z d
   Z d d  Z d   Z d   Z d   Z d   Z d   Z e e e  Z d   Z d   Z e d  Z d   Z d   Z d   Z d d  Z d   Z d   Z d d  Z  d# d  Z! d# d e" d  Z# d# d d  Z$ d# d   Z% d d!  Z& d"   Z' RS($   c         C   s  |  a  t j   |  _ d |  _ i  |  _ d |  _ d  |  _ i  |  _	 i  |  _
 g  |  _ x* d j   D] } i  } t |  | |  qa Wi  |  _ g  |  _ i  |  _ i  |  _ d  |  _ d  |  _ d  |  _ d  |  _ d t j f d     Y} | |  _ d |  j _ d |  j _ |  |  j _  d  S(   Ni    t    s9   cache_node_abspath task_sigs node_deps raw_deps node_sigst
   node_classc           B   s   e  Z RS(    (   R   R   (    (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR   /   s   t   Nodet   Nodu(   R   t   Taskt   TaskManagert   task_managert   id_nodest   all_envst   bdirR   t   patht   cache_node_abspatht   cache_scanned_folderst	   uninstallt   splitt   setattrt   cache_dir_contentst   all_task_gent   task_gen_cache_namest   cache_sig_varst   logt   roott   srcnodet   bldnodeR   R   R   R   (   R   t   vt   varR   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR      s2    																c         C   s  y% t  j  t j j |  j d   } Wn t t f k
 r> nE X| d t k  ra t j	 d   n  x | d D] } |  j
 |   ql Wz t j   d  } } |  j t _ y% t t j j |  j t  d  } Wn t t f k
 r n Xy | r t j |  } n  Wn& t k
 r)t j d k r*  q*n X| rXx/ t D] } t |  | | |  q7Wn
 t d  Wd  | ry| j   n  t j   Xd  S(   Ns   build.config.pyt   versions)   Version mismatch! reconfigure the projectt   toolst   rbi   s!   build: Build cache loading failed(   t   Environmentt   osR#   R   t   cachedirt   IOErrort   OSErrort
   HEXVERSIONR	   R
   t   setupt   gct   disableR   R   R   R   t   openR"   t   DBFILEt   EOFErrort   cPicklet   loadt   AttributeErrort   Logst   verboset   SAVED_ATTRSR(   R   t   closet   enable(   R   t   envR   t   ft   datat   x(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyRC   5   s:    %

%  
  c         C   s   t  j   d  |  j j _ |  j t _ t	 t
 j j |  j t  d  } i  } x! t D] } t |  |  | | <qS Wt j | | d  | j   |  |  j j _ t  j   d  S(   Nt   wbi(   R=   R>   R   R.   t	   __class__R   R   R   R   R?   R7   R#   R   R"   R@   RG   t   getattrRB   t   dumpRH   RI   (   R   t   fileRL   RM   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   saveR   s    
! 
c            sr   t  d     f d      j }   |  |  j k rn x- d j   D] } i  } t  | |  qK Wn  d  S(   Ns   build: clean calledc            s   x |  j  j   D] } |  j  | } | j d @} | t j k rL   |  q | t j k r xa  j j   D]P } | j |  } | | d k r qk n  y t	 j
 |  Wqk t k
 r qk Xqk W|  j  j |  q q Wd  S(   Ni   t   waf_config_files(   t   childst   keyst   idR   t   DIRt   BUILDR!   t   valuest   abspathR7   t   removeR:   t   __delitem__(   t   nodeRM   t   ndt   tpRJ   t   pt(   t	   clean_recR   (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyRb   _   s       s9   node_sigs node_deps task_sigs raw_deps cache_node_abspath(   R   R/   R'   R(   (   R   R^   R1   R2   (    (   Rb   R   sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   clean]   s    
	
c         C   s_  t  d  t j |  j  |  j   t j |  t j j	  |  _
 t d  } t  d  y | d t  |  j
 j   Wn t k
 r |   t j |  j j    |  j   t j d d  t j d k r   qt j d  n, t k
 r |     n X|   |  j   |  j
 j rEt j |  j j    t |  |  j j   n  t j |  j j    d  S(	   Ns   build: compile calledc         S   sH   t  j j rD |  r+ t j j t j j  qD t j j t j j	  n  d  S(   N(
   t   Optionst   optionst   progress_bart   syst   stdoutt   writeRE   t   colorst	   cursor_ont
   cursor_off(   t   on(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   dww   s     s   build: executor startingRm   t   REDs   Build interruptedi   iD   (   R   R7   t   chdirR"   t   flusht   Runnert   ParallelRd   Re   t   jobst	   generatort   Truet   Falset   startt   KeyboardInterruptR/   R[   RS   R	   t   pprintRE   RF   Rg   t   exitt	   ExceptionR   R   R   t
   tasks_done(   R   Rn   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   compiler   s4    



 
c         C   s2  t  d  |  j   t j d r.g  } x? |  j D]4 } t j j |  } | | k r1 | j |  q1 q1 W| j	   | j
   g  } x[ | D]S } | } xD t |  d k r | | k r | j |  n  t j j |  } q Wq W| j	   | j
   x6 | D]+ } y t j |  Wq t k
 r&q Xq Wn  d  S(   Ns   build: install calledR&   i   (   R   Rq   Rd   t   commandsR&   R7   R#   t   dirnameR   t   sortt   reverset   lent   rmdirR:   (   R   R   RM   t   dirt   nlstt   y(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   install   s0    

 

 

  c         C   s7   x0 t  j |  D] } | r t j | |   q q Wd  S(   N(   R	   t   to_listt	   Scriptingt
   add_subdir(   R   t   dirsR   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   add_subdirs   s     c         O   s   |  | d <t  |  d k r, t j | |   S| d } y t j j | } WnC t k
 r t j d | g  t j j D] } | ^ qs f   n X| | |   Sd  S(   NR   i    s&   %s is not a valid task generator -> %s(   R   t   TaskGent   task_gent   classest   KeyErrorR	   t   WscriptError(   R   t   kt   kwt   cls_namet   clsRM   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   new_task_gen   s    
 
  6c   	      C   s  y t  j |  j  } Wn: t k
 rR } | j t j k rL t  j d   qS   n X| sk t  j d   n  xa | D]Y } | j t  rr t	 j	 t
 j j |  j |   } | j d  d } | |  j | <qr qr W|  j   x |  j j   D] } x | d D]| } |  j j |  } y t  j | j |   } Wn+ t t f k
 r[t d |  t } n X| |  j | j   | j <q Wq W|  j j |  j j    |  _ |  j j |  j j    |  _ |  _ d  S(   Ns:   The project was not configured: run "waf configure" first!s5   The cache directory is empty: reconfigure the projectt   .i    t	   dep_filess   cannot find (   R	   t   listdirR8   R:   t   errnot   ENOENTR
   t   endswitht   CACHE_SUFFIXR6   R7   R#   R   R'   R!   t   init_variantsRZ   R/   t   find_or_declaret   h_fileR[   R9   RD   R   t   SIG_NILt	   node_sigst   variantRW   R.   t   find_dirR0   (	   R   R   t   eRR   RJ   t   nameRK   t   newnodet   hash(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt	   load_envs   s2    !

"c   
      C   s   t  |  t j k r: x | D] } |  j | |  q Wd  S| sL t j } n  d  } t | | f  } t j	 | d   } | s t
 j | |  \ } } }	 t
 j | | | |	  } | t | <n  t | d  r | j |   n  | r | j   n  d  S(   NR<   (   t   typet   typest   ListTypeR<   Rd   t   tooldirR   t   strt
   g_modcachet   gett   impt   find_modulet   load_modulet   hasattrRH   (
   R   t   toolR   t   funst   iRR   t   keyt   moduleR   t   desc(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR<      s"        c         C   s   t  d  g  } x? |  j j   D]. } | j   | k r  | j | j    q  q  W| |  _ t  d t |   xT | d g D]E } x< d j   D]. } t |  |  } | | k r i  | | <q q Wq} Wd  S(   Ns   build: init variantss   build: list of variants is %si    s   node_sigs cache_node_abspath(	   R   R!   RZ   R   R   t   lst_variantsR   R'   RP   (   R   t   lstvariantsRJ   R   R1   R2   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR      s    
	i   c         C   sW  t  j j |  s t  t  j j |  s0 t  t  j j | t  |  _ | | k rp t j d | | f   n  | |  _	 |  j
   |  j s |  j t _ t j d d  t j  |  _ n  |  j s |  j j |  |  _ n  t d t |  j j  | f  |  j |  _ y t  j |  Wn t k
 r'n X|  j sI|  j j |  |  _ n  |  j   d  S(   Ns3   build dir must be different from srcdir: %s <-> %s R   s"   build: srcnode is %s and srcdir %s(   R7   R#   t   isabst   AssertionErrorR   t	   CACHE_DIRR8   R	   R
   R"   RC   R.   R   R   R   R   RX   R/   t   ensure_dir_node_from_pathR   R   R   t   makedirsR:   R0   R   (   R   t   srcdirt   blddirt
   load_cache(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt	   load_dirs   s*    	
		   	c   
      C   s  |  j  j | j d   r d  Sd |  j  | j <t |  d  rK |  j |  n  t j d k rh | j rh d  S|  j	 | | j
    |  j j   } | j   } g  } | } x3 | | k r | j | j  | j } | d 8} q W| j   x |  j D] } t j j |  j j
   | |  } y |  j | | |  Wq t k
 r|  j | } xd | j j   D]S }	 |	 j | k r| j |	 j  n  |	 j |  j j k rZ| j j |	 j  qZqZWt j |  q Xq Wd  S(   Ni   t
   repositoryt   win32(   R%   R   RW   R   R   R   Rg   t   platformR   t   listdir_srcR[   R/   t   heightR   t   parentR   R   R7   R#   R   R0   t   listdir_bldR:   R   RU   RZ   R]   R   (
   R   t   src_dir_nodet   h1t   h2R   t   childR   t   sub_patht   dictR^   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   rescan   s:      	
!c         C   sx  t  t j |   } | |  j | j <t d t |   t  g  | j j   D]% } | j d @t	 j
 k rL | j ^ qL  } |  j d } | | @} xp | D]h } | j | } y( t j | t j | j  | | j <Wq t k
 r t j d | j     q Xq W| | }	 |	 rt|  j d } xP |	 D]E }
 | j |
 } | j | k r]| j | j  n  | j j |
  q(Wn  d  S(   Ns   build: folder contents i   i    s/   The file %s is not readable or has become a dir(   t   setR	   R   R)   RW   R   R   RU   RZ   R   t   FILER   R   R   R7   t   sepR9   R
   R[   R]   (   R   t   parent_nodeR#   t   listed_filesRM   t
   node_namest   cachet   to_keepR^   t	   to_removeR   R_   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR     s(    A
(!
c         C   s   g  | j  j   D]" } | j d @t j k r | ^ q } t t j |   } t g  | D] } | j ^ qW  } | | } g  | D] } | j | k r | j ^ q }	 |  j	 | }
 x* |	 D]" } | |
 k r |
 j
 |  q q Wd  S(   Ni   (   RU   RZ   RW   R   RY   R   R	   R   R   R   R]   (   R   R   R#   R   RM   t   i_existing_nodesR   R   t   remove_namest   ids_to_removeR   t   nid(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR   *  s    8"
+c         C   s   |  j  d  S(   Nt   default(   t   env_of_name(   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   get_env4  s    c         C   s   | |  j  | <d  S(   N(   R!   (   R   R   t   val(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   set_env6  s    c         C   s   t  |  d i   } t | t j  r- | } n9 t j j |  rT |  j j |  } n |  j j |  } y | | j j	 |  Wn! t
 k
 r | g | | j <n X| |  _ d  S(   Nt   deps_man(   RP   t
   isinstanceR   R7   R#   R   R.   t   find_resourceRW   R   R   R   (   R   R#   t   valuet   hR^   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   add_manual_dependency9  s    	  c         C   s?   y |  j  SWn- t k
 r: |  j j t j  |  _  |  j  SXd  S(   N(   t   p_lnRD   R.   R   Rd   t
   launch_dir(   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   launch_nodeD  s
    c         C   s   |  j  j   } g  t j | t j |  D] } |  j j |  ^ q* } | r| g  | D] } | rU | j |  j   ^ qU } n% g  | D] } | r | j   ^ q } | S(   N(   R#   R[   t   globR7   R   R.   R   t   path_to_parent(   R   t   patternt   relativeR#   RM   t   files(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR   J  s    9.%c         C   s!   |  j  d d  |  j j   d  S(   Nt   alli    (   Rq   R   t	   add_group(   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR   R  s    c         C   s   t  t |   t  |  } y |  j | SWn t k
 r> n Xg  | D] } | j |  ^ qF } t j |  } t d | j d  t  |  f  | |  j | <| S(   Ns   envhash: %s %st   hex(	   R   RW   R,   R   t   get_flatR	   t   h_listR   t   encode(   R   RJ   t   vars_lstt   idxt   aR   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   hash_env_varsU  s      "#c         C   s   |  j  } | s xp |  j D]b } | j j   d } | j rO | | | | j <q | | j } | j | d   s | | | <q q Wn  | j | j   d | d   S(   Nt   _(   R+   R*   RJ   R   R   t   targetR   R   (   R   R   RJ   R   RM   t   vtR1   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   name_to_obj^  s    		c   	      C   s  t  j    |  _ i  |  _ |  j d |  j  t d  t j j rEt d  i  } x t j j j	 d  D] } | j
   } xh |  j j   D]W } |  j | |  } | r y | | j |  Wq t k
 r | g | | <q Xq q W| | k rg | rg t j d |   qg qg Wx | j   D]! } x | D] } | j   q*WqWn} t d  |  j   } | j |  j  s| j |  j  r|  j } n  x3 |  j D]( } | j j |  sqn  | j   qWd  S(   NR   s/   build: delayed operation TaskGen.flush() calleds3   task_gen: posting objects listed in compile_targetst   ,s   target '%s' does not exists"   task_gen: posting objects (normal)(   t   timet   iniR+   R  RJ   R   Rd   Re   t   compile_targetsR'   t   stripR!   RZ   R   R   R	   R
   t   postR   t   is_child_ofR0   R/   R*   R#   (	   R   R   t   target_objectst   target_nameRJ   t   objt
   target_objRM   t   ln(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyRq   j  s:    	


% c         C   sJ   | s t  d  d  Sy |  j | SWn  t k
 rE t  d |  d  SXd  S(   Ns    env_of_name called with no name!s   no such environment: (   R   R   R!   R   (   R   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR     s    
c         C   sJ  t  t |   } t j d 7_ t j t j d } |  j } d | | } t j d t j t j   |   }	 d | | | f }
 |
 | | | | | f } d | |	 | f } t j	   t  |  t  |  d t  |  d t  |  } | d k  rd } n  t
 | | |  d } d	 | d
 j |  } t j | | | f } | S(   Ni   i   g      Y@s   %H:%M:%Ss"   [%%%dd/%%%dd][%%s%%2d%%%%%%s][%s][s	   ][%s%s%s]i   i   t   =t   >(   R   R   R	   t   rot_idxt   rot_chrR  R  t   strftimet   gmtimet   get_term_colst   intt   ljustt	   indicator(   R   t   statet   totalt   col1t   col2t   nt   indR  t   pct   etat   fst   leftt   rightt   colst   ratiot   bart   msg(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   progress_line  s     	%< 	i  c         C   s  t  j d rNt  j j sh y( t j |  j } t j |  j } Wn t k
 rT qh X| | k rh t Sn  | j	 |  j
 j d   t j d  } t d | | f  y t j |  Wn t k
 r n Xy$ t j | |  t j | |  Wn] t k
 rIy t j |  Wn% t t f k
 r2t d |  n Xt j d |   n Xt St  j d rt d |  |  j j |  y t j |  Wn t k
 rn Xt Sd  S(   NR   R   s   * installing %s as %ss   File %r does not exists   Could not install the file %rR&   s   * uninstalling %s(   Rd   R   Re   t   forceR7   t   statt   st_mtimeR:   Rw   t   replaceR/   R[   R   R   R   R\   t   shutilt   copy2t   chmodR9   R   R	   R
   Rv   R&   R   (   R   t   srct   tgtR/  t   t1t   t2t   srclbl(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt
   do_install  sB    %    c         C   s^   | s |  j  } n  | j   } t j | |  } | rZ t j j | | j t j   } n  | S(   N(	   RJ   t   get_destdirR	   t
   subst_varsR7   R#   R   t   lstripR   (   R   R#   RJ   t   destdirt   destpath(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   get_install_path  s     $c         C   s  t  j s g  S| s g  S|  j } t |  t j k rj d | k rj | j   t j | } t	 j	 |  } n t
 j |  } | p |  j } |  j | |  }	 t
 j |	  g  }
 x | D] } t j j |  s^| j |  } | s t
 j d | | f   n  | r4t j j |	 |  } t
 j t j j |   n t j j |	 | j  } | j |  } n( t
 j |  } t j j |	 | d  } |  j | | |  r |
 j |  q q W|
 S(   NR   s0   Unable to install the file `%s': not found in %si(   Rd   t
   is_installR#   R   R   t
   StringTypeR[   R7   R   R   R	   R   RJ   R;  t	   check_dirR   R   R
   R   R   R   t
   split_pathR5  R   (   R   R#   R   RJ   R/  t   relative_trickR^   t   glR   R:  t   installed_filest   filenameR_   t   destfilet   alst(    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   install_files  s8    	  	!c         C   s   t  j s t S| s t S| s) |  j } n  |  j } |  j | |  } t j j |  \ } } t j	 |  t j j
 |  s | j |  }	 |	 j |  }
 n | }
 |  j |
 | |  S(   N(   Rd   R<  Rw   RJ   R#   R;  R7   R'   R	   R>  R   R   R[   R5  (   R   R#   t   srcfileRJ   R/  R^   R:  R   R   t   filenodeR0  (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt
   install_as  s    	   	c         C   s  t  j s d  S| s d  S|  j | |  } t j j |  \ } } t j |  t  j d r yW t j j	 |  s t j
 |  | k r t d | | f  t j | |  n  d SWqt k
 r d SXnH t  j d ry# t d |  t j |  d SWqt k
 rd SXn  d  S(   NR   s   * symlink %s (-> %s)i    i   R&   s   * removing %s(   Rd   R<  R;  R7   R#   R'   R	   R>  R   t   islinkt   readlinkR   t   symlinkR:   R\   (   R   R#   R0  RJ   R1  R   R   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt
   symlink_as  s,    	  (c         C   sJ   t  d |  |  j r. |  j j d |  n  t j | d | d |  j S(   Ns   runner: system command -> %ss   %s
t   shellR-   (   R   R-   Ri   R	   t   exec_command(   R   t   cmdRN  (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyRO    s    	 c         C   s-   |  j  p t j } | j |  | j   d  S(   N(   R-   Rg   Rh   Ri   Rq   (   R   t   sRK   (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   printout  s    N((   R   R   R   RC   RS   Rc   R~   R   R   R   R   R   R<   R   R   R   R   R   R   R   t   propertyRJ   R   R   Rv   R   R   R   R  Rq   R   R(  R5  R;  Rw   RF  RI  RM  RO  RR  (    (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyR      sD   													
											(%   Rg   t
   hexversiont   setsR    R   R7   RB   R   R   R   t   reR   R=   R  R-  Rr   R   R   R   R	   R6   R   RE   Rd   R   R   R   t	   ConstantsR'   RG   R   R   R   R
   R   t   objectR   (    (    (    sm   /home/javi/src/hotssh/hotssh/hotssh-0.2.6+dfsg1/.waf-1.5.1-3009bf2a0164643771f76f0e24c46d7e/wafadmin/Build.pyt   <module>   s    l
