a

����ñÐLg��ã�������������������@���s,���d�dl�Z�d�dlZd�dlZG�dd„�deƒZdS�)é����Nc�������������������@���s.���e�Zd�Zddd„Zdd„�Zdd„�Zd	d
„�ZdS�)Ú	ComponentNFc�����������������C���s´��||�_�||�_d�|�_g�|�_g�|�_|r°tj |�jd¡}tj |¡s@|� |d¡}|sft	d|�j�d�ƒ‚n
|d�|�_|� |d¡|�_tj |�jd¡}tj |¡rÒt
|dƒ}| ¡� ¡�|�_W�d���ƒ�n1�sÈ0����Y��|� |d	¡|�_|�j|�j|�jd
œ}t
|dƒ0}| 
tj|dd
d¡�| 
d¡�W�d���ƒ�n1�s40����Y��npt
|dƒ}t | ¡�¡}W�d���ƒ�n1�sp0����Y��|s’t	d|�j�d�ƒ‚|d�|�_|d�|�_|d�|�_d�S�)NÚpkg5zprint-value-COMPONENT_NAMEz Component returns empty name at Ú.r���zprint-package-namesz
pkg5.fmrisÚrzprint-required-packages)ÚnameÚfmrisÚdependenciesÚwTé���)Ú	sort_keysÚindentÚ
z&Component pkg5 data is empty for path r���r���r���)ÚdebugÚpathr���Úsupplied_packagesÚrequired_packagesÚosÚjoinÚisfileÚrun_makeÚ
ValueErrorÚopenÚreadÚ
splitlinesÚwriteÚjsonÚdumpsÚloads)Úselfr���r���Zcomponent_pkg5_fileZcomponent_nameZcomponent_pkg5_fmris_fileÚfÚdata©�r!���ú;/jenkins/jobs/oi-userland/workspace/tools/bass/component.pyÚ__init__"���s@����
,þ,.

zComponent.__init__c�����������������C���s*���d}t�|�jƒ}t�|jƒ}| |¡r&d}|S�)NFT)Úsetr���r���Úintersection)r���Ú	componentÚresultÚs1Ús2r!���r!���r"���ÚrequiredK���s����


zComponent.requiredc�����������������C���s„���g�}|�j�rt �d||¡�tjddd|gtjtj|dd}| ¡�\}}| ¡�D�]}| | ¡�¡�qL|�j�r€|j	dkr€t �d|j	|¡�|S�)	NzExecuting 'gmake %s' in %sÚgmakez-sz--no-print-directoryT)ÚstdoutÚstderrÚcwdÚuniversal_newlinesr���zexit: %d, %s)
r���ÚloggerÚ
subprocessÚPopenÚPIPEÚcommunicater���ÚappendÚrstripÚ
returncode)r���r���Útargetsr'���Úprocr,���r-���Úoutr!���r!���r"���r���U���s ����ü
zComponent.run_makec�����������������C���s6���d|�j��}|dd |�j¡�7�}|dd |�j¡�7�}|S�)NzComponent:
	Path: %s
z	Provides Package(s):
		%s
z		z	Required Package(s):
		%s
)r���r���r���r���)r���r'���r!���r!���r"���Ú__str__l���s����
zComponent.__str__)NF)Ú__name__Ú
__module__Ú__qualname__r#���r*���r���r;���r!���r!���r!���r"���r���!���s���
)
r���)r���r1���r���Úobjectr���r!���r!���r!���r"���Ú<module>���s���