ó
È”Mc           @   s—   d  d l  m Z d  d l Z d  d l Z y d  d l m Z Wn! e k
 r_ d  d l m Z n Xd  d l Z d d „ Z	 d „  Z
 d „  Z d „  Z d S(   iÿÿÿÿ(   t	   BLOCKSIZEN(   t   md5c         C   se   | s t  ƒ  } n  t |  ƒ } x0 t rP | j t ƒ } | s@ Pn  | j | ƒ q! W| j ƒ  | j ƒ  S(   N(   R   t   opent   Truet   readR    t   updatet   closet   digest(   t   pathR   t   filet   data(    (    s8   /usr/lib/python2.7/dist-packages/smart/util/filetools.pyt   getFileDigest   s    	
c         C   sö   t  j j |  ƒ s& t  j j | ƒ r* t St  j j |  ƒ t  j j | ƒ k rR t St ƒ  } t ƒ  } xo |  | f | | f g D]U \ } } t | ƒ } x0 t rÇ | j t	 ƒ } | s· Pn  | j
 | ƒ q˜ W| j ƒ  q} W| j ƒ  | j ƒ  k rò t St S(   N(   t   osR   t   isfilet   Falset   getsizeR   R   R   R   R    R   R   R   (   t   path1t   path2t   path1sumt   path2sumR   t   sumR	   R
   (    (    s8   /usr/lib/python2.7/dist-packages/smart/util/filetools.pyt   compareFiles+   s"    &$		%	c         C   sW   y? t  j  |  t  j d ƒ } | t  j O} t  j  |  t  j | ƒ Wn t k
 rR n Xd  S(   Ni    (   t   fcntlt   F_GETFLt
   FD_CLOEXECt   F_SETFLt   IOError(   t   fdt   flags(    (    s8   /usr/lib/python2.7/dist-packages/smart/util/filetools.pyt   setCloseOnExec>   s    c          C   s   t  d t j t j ƒ d ƒ }  xj t d |  ƒ D]Y } y? t j | t j d ƒ } | t j O} t j | t j | ƒ Wq/ t	 k
 r‡ q/ Xq/ Wd  S(   Ni   i   i   i    (
   t   mint   resourcet	   getrlimitt   RLIMIT_NOFILEt   rangeR   R   R   R   R   (   t   number_of_filesR   R   (    (    s8   /usr/lib/python2.7/dist-packages/smart/util/filetools.pyt   setCloseOnExecAllF   s    (   t   smart.constR    R   R   t   hashlibR   t   ImportErrorR   t   NoneR   R   R   R$   (    (    (    s8   /usr/lib/python2.7/dist-packages/smart/util/filetools.pyt   <module>   s   		