ó
}k^c           @   sg   d  d l  Z  d  d l m Z m Z d  d l m Z m Z m Z e  j e	 ƒ Z
 d e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   makedirst   chmod(   t   existst   joint   dirnamet	   DebHelperc           B   sV   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(	   s>   Reinvents the wheel / some dh functionality (Perl is ugly ;-P)c         C   s¤  | |  _  i  |  _ d  |  _ t } d  } | j } | j } y t d d ƒ } Wn t k
 rk t	 d ƒ ‚ n Xt
 } } xì| D]ä}	 |	 j ƒ  s¡ t
 } d  } q} n  | r%| j d ƒ r¼ q} n  | rÔ | | k rÔ q} n  | rì | | k rì q} n  |	 j d ƒ ra|	 d j ƒ  }
 |
 |  j | d <q} qaq} |	 j d ƒ rÅ|	 d	 j ƒ  } | j d ƒ rit j d
 | ƒ q} n  | r| | k rq} n  | r™| | k r™q} n  i i  d 6i  d 6g  d 6d d 6|  j | <q} |	 j d ƒ rê|	 d j ƒ  |  _ q} | r} |	 j ƒ  j d ƒ r-t } |  j s-|	 d j ƒ  |  _ q-n  |	 j ƒ  j d ƒ rat } |	 d j ƒ  |  _ qaq} q} W| r| rt j d ƒ n  t j d |  j |  j j ƒ  ƒ d  S(   Ns   debian/controlt   rs   cannot find debian/control filet   python3s   Architecture:i   t   archs   Package:i   s   skipping Python 3.X package: %st	   substvarst   autoscriptst	   rtupdatest   anys   Source:i   s   xs-python-version:i   s   x-python-version:i   s3   Please remove XS-Python-Version from debian/controls   source=%s, binary packages=%s(   t   optionst   packagest   Nonet   python_versiont   Truet   packaget
   no_packaget   opent   IOErrort	   Exceptiont   Falset   stript
   startswitht   logt   debugt   source_namet   lowert   errort   keys(   t   selfR   t   source_sectiont   binary_packaget   pkgst	   skip_pkgst   fpt   xspvt   xpvt   lineR   (    (    s(   /usr/share/python/debpython/debhelper.pyt   __init__    sn    					
	
	c         C   s(   |  j  | d j | g  ƒ j | ƒ d S(   s   debhelper's addsubstvarR	   N(   R   t
   setdefaultt   append(   R    R   t   namet   value(    (    s(   /usr/share/python/debpython/debhelper.pyt   addsubstvar`   s    c         C   s4   |  j  | d j | i  ƒ j | g  ƒ j | ƒ d S(   s   debhelper's autoscriptR
   N(   R   R*   R+   (   R    R   t   whent   templatet   args(    (    s(   /usr/share/python/debpython/debhelper.pyt
   autoscriptd   s    c         C   s   |  j  | d j | ƒ d  S(   NR   (   R   R+   (   R    R   R-   (    (    s(   /usr/share/python/debpython/debhelper.pyt   add_rtupdatei   s    c      	   C   sÉ  xÂ|  j  j ƒ  D]±\ } } | j d ƒ } | s7 q n  x‡| j ƒ  D]y\ } } d | | f } t | ƒ r„ t | d ƒ j ƒ  } n d } d } xé | j ƒ  D]Û \ }	 }
 xÌ |
 D]Ä } t t t ƒ d d |	 ƒ } t | ƒ së d |	 } n  t | d ƒ j ƒ  } |  j	 j
 r'|
 r'| j d d ƒ } n | j d | ƒ } | j d	 | ƒ } | | k r° | | k r° | d
 | 7} q° q° Wq W| rD | d d | 7} t | d ƒ } | j | ƒ | j ƒ  qD qD Wq Wd  S(   NR
   s   debian/%s.%s.debhelperR   t    s   ..s   autoscripts/%ss#   /usr/share/debhelper/autoscripts/%ss	   #PACKAGE#s   #ARGS#s   
%ss%   
# Automatically added by dh_python2:s%   %s
# End automatically added section
t   w(   R   t	   iteritemst   getR   R   t   readR   R   t   __file__R   t   compile_allt   replacet   writet   close(   R    R   t   settingsR
   R/   t	   templatest   fnt   datat   new_datat   tpl_nameR1   t   it   fpatht   tplR%   (    (    s(   /usr/share/python/debpython/debhelper.pyt   save_autoscriptsl   s:    c         C   s  x|  j  j ƒ  D]\ } } | j d ƒ } | s7 q n  d | } t | ƒ re t | d ƒ j ƒ  } n d } xc| j ƒ  D]U\ } } | j d | ƒ } | d k ra| | j d ƒ }	 | | t d | ƒ |	 d k rà | |	 n d  !}
 g  |
 j	 d ƒ D] } | r÷ | j
 ƒ  ^ q÷ } |	 d k rT| | |	 j
 ƒ  rTd	 | |  | | |	 f } qg| |  } n g  } x* | D]" } | | k rn| j | ƒ qnqnW| rx | r­| d 7} n  | d
 | d j | ƒ f 7} qx qx W| j d d ƒ } | r t | d ƒ } | j | ƒ | j ƒ  q q Wd  S(   NR	   s   debian/%s.substvarsR   R4   s   %s=iÿÿÿÿs   
t   ,s   %s
%ss   %s=%s
s   , s   

R5   (   R   R6   R7   R   R   R8   t   findt   lenR   t   splitR   R+   R   R;   R<   R=   (   R    R   R>   R	   R@   RA   R,   t   valuest   pt   eR(   RD   t   itemst   jR%   (    (    s(   /usr/share/python/debpython/debhelper.pyt   save_substvars‘   s>    
. $c         C   sM  xF|  j  j ƒ  D]5\ } } |  j j r. d n d | } | j d ƒ } | sS q n  d | } t | ƒ sv t | ƒ n  d | | f } t | ƒ rª t | d ƒ j ƒ  } n d } xV | D]N \ } }	 d d	 | | f d
 | |	 | f }
 |
 | k r· | d |
 7} q· q· W| r t | d ƒ } | j	 | ƒ | j
 ƒ  t | d ƒ q q Wd  S(   NR4   s   -p %sR   s$   debian/%s/usr/share/python/runtime.ds   %s/%s.rtupdateR   s   #! /bin/sh
set -es   if [ "$1" = rtupdate ]; thens   
	pyclean %s %ss   
	pycompile %s %s %s
fis   
%sR5   ií  (   R   R6   R   R:   R7   R   R    R   R8   R<   R=   R   (   R    R   R>   t   pkg_argRL   t   dR@   RA   t   dnameR1   t   cmdR%   (    (    s(   /usr/share/python/debpython/debhelper.pyt   save_rtupdateµ   s,    

c         C   s"   |  j  ƒ  |  j ƒ  |  j ƒ  d  S(   N(   RQ   RG   RV   (   R    (    (    s(   /usr/share/python/debpython/debhelper.pyt   saveÏ   s    

(   t   __name__t
   __module__t   __doc__R)   R.   R2   R3   RG   RQ   RV   RW   (    (    (    s(   /usr/share/python/debpython/debhelper.pyR      s   	@				%	$	(   t   loggingt   osR    R   t   os.pathR   R   R   t	   getLoggerRX   R   t   objectR   (    (    (    s(   /usr/share/python/debpython/debhelper.pyt   <module>   s   