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Zddlm	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e	fddZdd Zdd ZdS )z-Tool specific initialization of msginit tool.    N)_null)	StopError)CYGWIN_DEFAULT_PATHS)MINGW_DEFAULT_PATHS)_detect_msginit_init_po_files_msginit_exists_POFileBuilderc             C   s:   d| kr| d }nd}|r(t jdgS t jdgS dS )zRReturn '--no-translator' flag if we run *msginit(1)*  in non-interactive
    mode.
POAUTOINITFz--no-translator N)SConsZUtilZCLVar)envZautoinit r   1lib/python3.7/site-packages/SCons/Tool/msginit.py_optional_no_translator_flag.   s    
r   c             K   s   t jtd}t| |ddS )z- Create builder object for `POInit` builder. Nz$POCREATE_ALIAS)actionZtarget_alias)r   ZActionr   r	   )r   kwr   r   r   r   _POInitBuilder;   s    r   c             K   sF   |t kr6d|kr|d }nd| kr,| d }nd}|g}| j||f|S )zWrapper for _POFileBuilder. We use it to make user's life easier.

    This wrapper checks for `$POTDOMAIN` construction variable (or override in
    `**kw`) and treats it appropriatelly.
    Z	POTDOMAINZmessages)r   r   )r   targetsourcer   Zdomainr   r   r   _POInitBuilderWrapperB   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 d}| jdgd	gd
t|dg ddd	 | jdt| id | td | | d dS )z Generate the `msginit` tool Zwin32msginit)Zdefault_pathsPATHz8msginit tool requested, but binary not found in ENV PATHZMSGINITz^$MSGINIT ${_MSGNoTranslator(__env__)} -l ${_MSGINITLOCALE} $MSGINITFLAGS -i $SOURCE -o $TARGETz.poz.potz${TARGET.filebase}r   Fz	po-create)	ZPOSUFFIXZ	POTSUFFIXZ_MSGINITLOCALEZ_MSGNoTranslatorZ
MSGINITCOMZMSGINITCOMSTRZMSGINITFLAGSr
   ZPOCREATE_ALIASr   )ZBUILDERSZPOInitz$POCREATE_ALIASN)sysplatformr   ZToolZfind_program_pathr   r   ospathdirnameZAppendENVPathZWarningswarnZSConsWarningr   r   Z
SetDefaultr   ZAppendr   Z	AddMethodr   ZAlwaysBuildZAlias)r   r   r   Zmsginit_bin_dirZ
msginitcomr   r   r   generateR   s6    
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   exists}   s    r    )__doc__r   r   ZSCons.Actionr   Z
SCons.ToolZ
SCons.UtilZSCons.WarningsZSCons.Environmentr   ZSCons.Errorsr   ZSCons.Platform.cygwinr   ZSCons.Platform.mingwr   ZSCons.Tool.GettextCommonr   r   r   r	   r   r   r   r   r    r   r   r   r   <module>   s    	+