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|dd 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���zexit: %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���