
U]Q                 @   s   d  d l  Z  d  d l m Z d  d l m Z d  d l m Z m Z m Z d  d l	 m
 Z
 d  d l m Z m Z e  j d  Z d Z d	 d
   Z Gd d   d e  Z d S)    N)glob1)remove)existsisdirjoin)rmtree)Baseshell_commandZdhpythonzsetup.py|setup-3.pyc                s"     f d d   }   j  | _  | S)zdistutils doesn't have sane command-line API - this decorator creates
    .pydistutils.cfg file to workaround it

    hint: if you think this is plain stupid, please don't read
    distutils/setuptools/distribute sources
    c                s   t  | d d  } t |  s t | d d d k } d d d d	 j | d
  d d d d j | d  d d g
 } t j d d j  |   | j |  Wd  QRX| d | d d <  |  | | | |  S)NZhome_dirz.pydistutils.cfgwencodingzutf-8z[clean]
zall=1
z[build]
zbuild-lib={}
	build_dirz
[install]
zinstall-layout=deb
zinstall-scripts=/usr/bin
zinstall-lib={}
Zinstall_dirz[easy_install]
zallow_hosts=None
zpydistutils config file:
%s ZENVHOME)r   r   openformatlogdebug
writelines)selfcontextargsZoargskwargsfpathfplines)func 7/usr/share/dh-python/dhpython/build/plugin_distutils.pywrapped_func(   s"    	z,create_pydistutils_cfg.<locals>.wrapped_func)__name__)r   r   r   )r   r   create_pydistutils_cfg    s    r    c                   s   e  Z d  Z d Z d d d d d d d h Z e g Z d	 d
 d d
 d d d d i Z   f d d   Z e	 e
   f d d     Z e	 e
 d d     Z e	 e
 d d     Z e	 e
 d d     Z e	 e
   f d d     Z   S)BuildSystemzDistutils build systempythonpython3zpython{version}z
python-dbgzpython3-dbgzpython{version}-dbgZpypyz	setup.cfg   zrequirements.txtzPKG-INFO
   z
*.egg-infoc                sU   t  t |   j |  } t |  j k rC |  j t d | d d <n d | d d <| S)Nr   r   setup_pyzsetup.py)superr!   detect
_setup_tplZDETECTED_REQUIRED_FILES)r   r   result)	__class__r   r   r(   J   s
    zBuildSystem.detectc                s`   t  t |   j | |  t | d d  } t |  oA t |  t | d j    r\ d Sd S)NdirbuildZinterpreterz%{interpreter} {setup_py} clean {args}r   )r'   r!   cleanr   r   r   r   binary)r   r   r   Zdpath)r+   r   r   r.   R   s    zBuildSystem.cleanc             C   s   d S)Nz&{interpreter} {setup_py} config {args}r   )r   r   r   r   r   r   	configure\   s    zBuildSystem.configurec             C   s   d S)Nz/{interpreter.binary_dv} {setup_py} build {args}r   )r   r   r   r   r   r   r-   a   s    zBuildSystem.buildc             C   sW   xP t  | d d  D]; } t | d |  } t |  rE t |  n	 t |  q Wd S)Nr   z
*.egg-infozB{interpreter.binary_dv} {setup_py} install --root {destdir} {args})r   r   r   r   r   )r   r   r   fnamer   r   r   r   installf   s    &zBuildSystem.installc          
      st   |  j  j s[ t | d | d  } t | d  & } | j   j d  d k rT d SWd  QRXt t |   j | |  S)Nr,   r&   rbs
   test_suiter   z${interpreter} {setup_py} test {args})	ZcfgZcustom_testsr   r   readfindr'   r!   test)r   r   r   r   r   )r+   r   r   r6   p   s    zBuildSystem.test)r   
__module____qualname__ZDESCRIPTIONZSUPPORTED_INTERPRETERSr)   ZREQUIRED_FILESZOPTIONAL_FILESr(   r	   r    r.   r0   r-   r2   r6   r   r   )r+   r   r!   ?   s(   						r!   )Zloggingglobr   osr   os.pathr   r   r   Zshutilr   Zdhpython.build.baser   r	   Z	getLoggerr   r)   r    r!   r   r   r   r   <module>   s   