B
    Åû_ç  ã               @   sŠ   d dl Z d dlZd dlZd dlZe d¡Ze d¡Ze d¡Zd Zdd„ Z	dd„ Z
d	d
„ Zdd„ Zdd„ Zedkr†edejdd… ƒ dS )é    Nz&%%DocumentSuppliedResources: font (.*)z%%BeginFont: (.*)z	%%EndFontc             C   s˜   i }xŽ| D ]†}t r"tj d| ¡ t|ddd ¡ }d}g }xR|t|ƒk rŽt ||d … ¡}|sbP | 	d¡}|| 
d¡7 }||kr„q>|||< q>W q
W |S )NzScanning %s
ÚrÚutf8)Úencodingr   é   )ÚverboseÚsysÚstderrÚwriteÚopenÚreadÚlenÚdsr_font_regexÚsearchÚgroupÚend)ÚfilesÚfile_of_font_dictÚfÚheaderÚidxÚextract_from_thisÚmatchÚname© r   úm/home/gub/NewGub/gub/target/mingw/src/lilypond-git.sv.gnu.org--lilypond.git-stable-2.22/python/fontextract.pyÚ
scan_files   s"    

r   c             C   s@   i }x6t |  ¡ ƒD ]&\}}||kr*g ||< ||  |¡ qW |S )N)ÚlistÚitemsÚappend)r   ÚdictÚnr   r   r   r   Úget_file_fonts_dict7   s    r!   c             C   sÐ   | rÌg }g }d}xœt |dd ¡ D ]ˆ}|sNt |¡rNd}t |¡ d¡}g }nV|r–t |¡r–d}|| kr¤d |¡||< trŠtj	 
d| ¡ |  |¡ n|r¤| |¡ | s"P q"W | rÌtj	 
dd | ¡|f ¡ d S )	Nr   r   )r   r   Ú zExtracted %s
zFailed to extract %s from %s
z, )r
   Ú	readlinesÚbegin_font_regexr   r   Úend_font_regexÚjoinr   r   r   r	   Úremover   )r   Ú	font_dictÚfilenameZ	curr_fontZcurr_font_nameZin_fontÚlr   r   r   Úextract_fonts_from_fileB   s.    
r+   c             C   sš   t rtj d|  ¡ t| ddd}| d¡ x"t| ¡ ƒD ]}| d| ¡ q:W | d¡ x:t| ¡ ƒD ]*\}}| d| ¡ | |¡ | d	¡ qhW d S )
NzWriting fonts to %s
Úwr   )r   z@%!PS-Adobe-3.0
%%VMusage: 0 0
%%Creator: lilypond-extract-fonts
z'%%%%DocumentSuppliedResources: font %s
z%%EndComments
z
%%%%BeginFont: %s
z

%%EndFont)r   r   r   r	   r
   r   Úkeysr   )Úoutput_file_namer(   ÚoutputÚxÚkÚvr   r   r   Úwrite_extracted_fonts_   s    

r3   c             C   sH   t |ƒ}t|ƒ}i }x$t| ¡ ƒD ]\}}t|||ƒ q"W t| |ƒ d S )N)r   r!   r   r   r+   r3   )r.   Zinput_filesÚdZffr(   ÚfileZfontsr   r   r   Úextract_fontss   s    r6   Ú__main__zfonts.psr   )ZgetoptÚosÚrer   Úcompiler   r$   r%   r   r   r!   r+   r3   r6   Ú__name__Úargvr   r   r   r   Ú<module>   s   


