` c‹��ã���������������@���s>���d��d�l��Z��d��d�l�Z�d��d�l�Z�Gd�d�„��d�e�ƒ�Z�d�S)é����Nc���������������@���sF���e��Z�d��Z�d�d�d�d�„�Z�d�d�„��Z�d�d�„��Z�d	�d
�„��Z�d�S)Ú	ComponentNFc�������������C���s��|�|��_��|�|��_�d��|��_�g��|��_�g��|��_�|�rt�j�j�|��j�d�ƒ�}�t�j�j�|�ƒ�s}|��j�|�d�ƒ�}�|�s�t	�d�|��j�d�ƒ�‚�n
�|�d�|��_�|��j�|�d�ƒ�|��_�t�j�j�|��j�d�ƒ�}�t�j�j�|�ƒ�r	t
�|�d�ƒ��}�|�j�ƒ��j�ƒ��|��_�Wd��QRX|��j�|�d	�ƒ�|��_�d
�|��j�d�|��j�d�|��j�i�}�t
�|�d
�ƒ�)�}�|�j
�t�j�|�d�d�d�d�ƒƒ�Wd��QRXnr�t
�|�d�ƒ��}�t�j�|�j�ƒ��ƒ�}�Wd��QRX|�sÈt	�d�|��j�d�ƒ�‚�|�d
�|��_�|�d�|��_�|�d�|��_�|��j�s|��j�d�rt	�d�|��j�ƒ�‚�d��S)NÚpkg5zprint-value-COMPONENT_NAMEz Component returns empty name at Ú.r���zprint-package-namesz
pkg5.fmrisÚrzprint-required-packagesÚnameÚfmrisÚdependenciesÚwÚ	sort_keysTÚindenté���z&Component pkg5 data is empty for path z$Empty list of supplied FMRIs
path = )Ú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�ƒ�}�|�j�|�ƒ�r9�d�}�|�S)NFT)Úsetr���r���Úintersection)r���Ú	componentÚresultÚs1Ús2r ���r ���r!���ÚrequiredM���s����zComponent.requiredc����������
���C���sÆ���g��}�|��j��r"�t�j��d�|�|�ƒ�t�j�d�d�|�g�d�t�j�d�t�j�d�|�d�d�ƒ}�|�j�ƒ��\�}�}�x'�|�j�ƒ��D]�}�|�j�|�j�ƒ��ƒ�qw�W|��j��rÂ�|�j	�d	�k�rÂ�t�j��d
�|�j	�|�ƒ�|�S)NzExecuting 'gmake %s' in %sÚgmakez-sÚstdoutÚstderrÚcwdÚuniversal_newlinesTr���zexit: %d, %s)
r
���ÚloggerÚ
subprocessÚPopenÚPIPEÚcommunicater���ÚappendÚrstripÚ
returncode)r���r���Ztargetsr&���Úprocr+���r,���Úoutr ���r ���r!���r���W���s����					zComponent.run_makec�������������C���sE���d�|��j��}�|�d�d�j�|��j�ƒ�7}�|�d�d�j�|��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__n���s����
zComponent.__str__)Ú__name__Ú
__module__Ú__qualname__r"���r)���r���r9���r ���r ���r ���r!���r���"���s���*
r���)r���r0���r���Úobjectr���r ���r ���r ���r!���Ú<module>���s���