HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //proc/1233/cwd/usr/share/dh-python/dhpython/__pycache__/debhelper.cpython-310.pyc
o

O�Ib�0�@s�ddlZddlZddlmZmZmZddlmZmZm	Z	m
Z
ddlmZddl
mZmZmZmZe�d�Ze�dej�jZdd	�ZGd
d�d�ZdS)�N)�makedirs�chmod�environ)�basename�exists�join�dirname)�argv)�DEPENDS_SUBSTVARS�
PKG_NAME_TPLS�RT_LOCATIONS�RT_TPLS�dhpythonz�[,\s]*
    (?P<name>[^ :]+)(?::any)?
    \s*
    \(?(?P<version>([>=<]{2,}|=)\s*[^\)]+)?\)?
    \s*
    (?:\[(?P<arch>[^\]]+)\])?
    cKs(dggd�}|}|�|�tdtf|�S)z'Build an Options object from kw optionsN)�arch�package�
no_package�Options)�update�type�object)�options�default_options�
built_options�r�*/usr/share/dh-python/dhpython/debhelper.py�
build_options&s�
rc@sReZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�	DebHelperz>Reinvents the wheel / some dh functionality (Perl is ugly ;-P)�cpython3cCs||_i|_i|_d|_||_t�}t��D]
\}}||kr#|�|�qt	|�}t
|}|j}|j}zqt
dddd��`}	ig}
d}t|	d�D]M\}}
|
�d�rOqE|
��s_|
dr^|
�i�d}qE|
d��rr|
d||
��7<qEd	|
vr~td
||
f��|
�d	d�\}}|��}|��|
d|<qEWd�n1s�wYWnty�td��w|
ds�|
��t|
�dkr�td
��|
dd|_|jdkr�d|
dvr�|
dd|_t|j�d��dkr�td��n"|jdk�rd|
dvr�|
dd|_nd|
dv�r|
dd|_g}dD]}||
dv�r!|�|
d|��qd�|�}|�d�D]9}|�d�D]0}t|�}|�rc|��}|d�rM|d��}ndg}|D]}|d|j�|di�|<�qR�q4�q-t|
dd�d�D]}\}}d|v�rtd|��|d}|�r�|�|��r�t �!d|��qp|�r�||v�r��qp|�r�||v�r��qpiig|dd �}|j"d!u�r�|dd"k�s�|j"d#u�r�|dd"k�r͐qp|�t|��s�||�#d$d%�v�r�t �!d&||��qp||j|<�qp|	�$�t �!d'|jt%|j�&���dS)(Nzdebian/control�r�utf-8��encoding��#���r�:z-Unable to parse line %i in debian/control: %szcannot find debian/control file�z<Unable to parse debian/control, found less than 2 paragraphs�sourcerzx-python3-version�,zDtoo many arguments provided for X-Python3-Version: min and max only.�cpython2zx-python-versionzxs-python-version)z
build-dependszbuild-depends-indepzbuild-depends-arch�, �|r�version�namerzBUnable to parse debian/control, paragraph %i missing Package fieldzskipping package: %s�architecture)�	substvars�autoscripts�	rtupdatesrF�allT�depends�z+skipping package %s (missing %s in Depends)zsource=%s, binary packages=%s)'r�packages�
build_depends�python_version�impl�setr�itemsr�tupler
rr�open�	enumerate�
startswith�strip�append�isspace�rstrip�	Exception�split�lower�IOError�pop�len�source_name�
ValueErrorr�	parse_dep�	groupdict�
setdefault�log�debugr�get�close�list�keys)�selfrr8�skip_tplr-�tpls�substvar�pkgs�	skip_pkgs�fp�
paragraphs�field�lineno�line�valuer6�dep1�dep2�details�
architecturesr�paragraph_no�	paragraph�binary_package�pkgrrr�__init__5s�
�

��������

�����
���
�zDebHelper.__init__cCs |j|d�|g��|�dS)zdebhelper's addsubstvarr/N�r5rMr@)rTrr-r_rrr�addsubstvar�s zDebHelper.addsubstvarcCs(|j|d�|i��|g��|�dS)zdebhelper's autoscriptr0Nri)rTr�when�template�argsrrr�
autoscript�szDebHelper.autoscriptcCs|j|d�|�dS)Nr1)r5r@)rTrr_rrr�add_rtupdate�szDebHelper.add_rtupdatecCs�|j��D]�\}}|�d�}|sq|��D]�\}}d||f}t|�r?t|ddd��}|��}Wd�n1s9wYnd}d}	|��D]r\}
}|D]k}ttt�dd|
�}
t|
�sad	|
}
t|
ddd��}|��}Wd�n1swwY|j	j
r�|r�|�d
d�}n|ddkr�|�d
|�}ntd}|�d
d||f�}|�d|�}||vr�||	vr�|	d|7}	qMqG|	r�|d�
ttd��d�
|	�7}t|ddd�}|�|�|��qqdS)Nr0zdebian/%s.%s.debhelperrrr r4z..zautoscripts/%sz#/usr/share/debhelper/autoscripts/%sz-p #PACKAGE#rr2z	#PACKAGE#�
DEB_HOST_ARCHz%s:%sz#ARGS#�
%sz
# Automatically added by {}rz%{}
# End automatically added section
�w)r5r:rPrr<�readrr�__file__r�compile_all�replacer�formatrr	�writerQ)rTr�settingsr0rk�	templates�fn�datafile�data�new_data�tpl_namerm�i�fpath�tplfile�tplrrZrrr�save_autoscripts�sX

��
�
����
���zDebHelper.save_autoscriptsc	Cs�|j��D]�\}}|�d�}|sqd|}t|�r5t|ddd��}|��}Wd�n1s/wYnd}|��D]\}}|�d|�}	|	dkr�||	d��d	�}
||	td|�|
dkrc|	|
nd�}d
d�|�d�D�}|
dkr�||	|
d��	�r�d
|d|	�||	|
d�f}n	|d|	�}ng}|D]}
|
|vr�|�
|
�q�|r�|r�|d	7}|d|d�|�f7}q;|�dd	�}|r�t|ddd�}|�
|�|��qdS)Nr/zdebian/%s.substvarsrrr r4z%s=r$�
cSsg|]}|r|���qSr)r?)�.0r�rrr�
<listcomp>�sz,DebHelper.save_substvars.<locals>.<listcomp>r(z%s
%sz%s=%s
r*z

rr)r5r:rPrr<rs�findrHrDr?r@rrvrxrQ)rTrryr/r{r|r}r-�values�p�er^r:�jrZrrr�save_substvars�sN

���"
��
��zDebHelper.save_substvarscCs�|j��D]p\}}|jjrdnd|}|�d�}|sqd�|t|j�}t|�s,t	|�d||f}t|�r@t
|ddd���}nd	}|D]\}}	t|jj|||	d
�}
|
|vr]|d|
7}qD|rut
|ddd�}|�
|�|��t|d
�qdS)Nr4z-p %sr1zdebian/{}/{}z%s/%s.rtupdaterrr z#! /bin/sh
set -e)�pkg_arg�dnamermrqrri�)r5r:rrurPrwrr8rrr<rsr
rxrQr)rTrryr�r��dr{r}r�rm�cmdrZrrr�
save_rtupdates6
��

��zDebHelper.save_rtupdatecCs|��|��|��dS)N)r�r�r�)rTrrr�save!szDebHelper.saveN)r)�__name__�
__module__�__qualname__�__doc__rhrjrnror�r�r�r�rrrrr2s
w*%r)�logging�re�osrrr�os.pathrrrr�sysr	rr
rrr
�	getLoggerrN�compile�VERBOSE�matchrKrrrrrr�<module>s
��