B
    b                 @   s   d Z ddlZddlZddlZddlZddlZddlmZ ddl	m
Z
 ddlmZ ddlmZmZmZmZ dd Zd	d
 ZddlmZ defddZdd Zdd ZdS )z1Tool specific initialization for `msgmerge` tool.    N)	StopError)CYGWIN_DEFAULT_PATHS)MINGW_DEFAULT_PATHS)_detect_msgmerge_init_po_files_msgmerge_exists_POFileBuilderc             C   sD   x>| D ]6}|  r"tjdd}nt}||g||}|r|S qW dS )z( Action function for `POUpdate` builder z$MSGMERGECOMz$MSGMERGECOMSTRr   )ZrexistsSConsActionr   )targetsourceenvZtgtactionZstatus r   2lib/python3.7/site-packages/SCons/Tool/msgmerge.py_update_or_init_po_files+   s    
r   c             K   s   t jtd}t| |ddS )z( Create an object of `POUpdate` builder Nz$POUPDATE_ALIAS)r   Ztarget_alias)r	   r
   r   r   )r   kwr   r   r   r   _POUpdateBuilder9   s    r   )_nullc             K   sN   |t kr>d|kr|d }nd| kr4| d r4| d }nd}|g}| j||f|S )z: Wrapper for `POUpdate` builder - make user's life easier Z	POTDOMAINZmessages)r   r   )r   r   r   r   Zdomainr   r   r   _POUpdateBuilderWrapperC   s    

r   c             K   s   t jdkrPtjj| dtt d}|r>tj	|}| 
d| ntjtjjd yt| | d< W n tk
r|   d| d< Y nX | jdgdgd	d
g dd | jdt| id | td | | d dS )z Generate the `msgmerge` tool Zwin32msgmerge)Zdefault_pathsPATHz9msgmerge tool requested, but binary not found in ENV PATHZMSGMERGEz.potz.poz2$MSGMERGE  $MSGMERGEFLAGS --update $TARGET $SOURCE z	po-update)Z	POTSUFFIXZPOSUFFIXZMSGMERGECOMZMSGMERGECOMSTRZMSGMERGEFLAGSZPOUPDATE_ALIASr   )ZBUILDERSZPOUpdatez$POUPDATE_ALIASN)sysplatformr	   ZToolZfind_program_pathr   r   ospathdirnameZAppendENVPathZWarningswarnZSConsWarningr   r   Z
SetDefaultZAppendr   Z	AddMethodr   ZAlwaysBuildZAlias)r   r   r   Zmsgmerge_bin_dirr   r   r   generateP   s.    
r   c             C   s"   yt | S  tk
r   dS X dS )z Check if the tool exists FN)r   r   )r   r   r   r   existsq   s    r    )__doc__r   r   ZSCons.Actionr	   Z
SCons.ToolZSCons.WarningsZSCons.Errorsr   ZSCons.Platform.cygwinr   ZSCons.Platform.mingwr   ZSCons.Tool.GettextCommonr   r   r   r   r   r   ZSCons.Environmentr   r   r   r    r   r   r   r   <module>   s   !