o
    uJAfu                     @  s   d dl mZ d dlZd dlZd dlZd dlZe Ze	d ej	ddd ej	ddd ej	ddd ej	d	dd ej	d
dd ej	ddd ej	ddd ej	ddd ej	ddd ej	ddd d%ddZ
d&ddZd'd!d"Zd(d#d$ZdS ))    )annotationsNcommandz	--pkgname )defaultz
--datadirsz--langsz--localedirz--source-rootz--subdirz
--xgettextxgettextz
--msgmergemsgmergez	--msginitmsginitz--extra-argssrc_substrreturnT.List[str]c              	   C  s   t j| d}z3g }t|dd }|D ]}| }|r&|ds&|| 7 }qW d    |W S 1 s3w   Y  |W S  ttfyN   t	d|   g  Y S w )NZLINGUASzutf-8)encoding#zCould not find file LINGUAS in )
ospathjoinopenstrip
startswithsplitFileNotFoundErrorPermissionErrorprint)r	   Zlinguaslangsfline r   ?/usr/lib/python3.10/site-packages/mesonbuild/scripts/gettext.pyread_linguas"   s$   
r   pkgnamedatadirsargssource_rootintc           	      C  s   t j| d}t j|s"t j| d}t j|s"td|   dS t j }|r-||d< t j| |d }tj|d| d| d	|d
|dd|g| |dS )NzPOTFILES.inZPOTFILESz"Could not find file POTFILES in %s   ZGETTEXTDATADIRS.potz--package-name=z-pz-fz-Dz-k_-o)env)	r   r   r   existsr   environcopy
subprocesscall)	r	   r   r   r    r!   r"   Zlistfile	child_envofiler   r   r   
run_potgen2   s"   

r/   r   c                 C  sp   t j| |d }|D ]*}t j| |d }t j|r(t|dd|||g qt|d|d|d|dg qd	S )
Nr%   z.poz-qr&   z--inputz--output-filez--localez--no-translatorr   )r   r   r   r(   r+   
check_call)r	   r   r   r   r   ZpotfilelZpofiler   r   r   	update_poC   s   r2   c                 C  s   t | }|j}|jr|jdnd }|jr|jdng }|j}tj	|j
|}|s/t|}|dkr@t||j|j|j||j
S |dkr`t||j|j|j||j
dkrUdS t||j|j|j|S td dS )Nz@@potr2   r   r$   zUnknown subcommand.)parser
parse_argsr   r   r   
extra_argssubdirr   r   r   r"   r   r/   r   r   r    r2   r   r   r   )r!   optionsZsubcmdr   r6   r7   r	   r   r   r   runM   s    
r9   )r	   r
   r   r   )r	   r
   r   r
   r   r
   r    r
   r!   r   r"   r
   r   r#   )r	   r
   r   r
   r   r
   r   r
   r   r   r   r#   )r!   r   r   r#   )
__future__r   r   argparser+   typingTArgumentParserr4   add_argumentr   r/   r2   r9   r   r   r   r   <module>   s*   




