o
    Ì^½^Š  ã                   @   sâ   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Ze e	¡Z
ejd  dkr5dd„ Zdd„ Zdd„ Znd	d„ Zd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd%dd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd&d#d$„ZdS )'é    Né   c                 C   s   t | tƒr| S |  ¡ S ©N)Ú
isinstanceÚbytesÚencode©Útext© r	   ú9/usr/lib/python3/dist-packages/mkdocs/utils/ghp_import.pyÚenc   s   
r   c                 C   ó   t | tƒr
|  d¡S | S ©Núutf-8)r   r   Údecoder   r	   r	   r
   Údec$   ó   

r   c              
   C   sH   z	| j  |¡ W d S  ty# } z|jtjkr‚ W Y d }~d S d }~ww r   )ÚstdinÚwriteÚOSErrorÚerrnoÚEPIPE)ÚpipeÚdataÚer	   r	   r
   r   )   s   ÿ€ÿr   c                 C   r   r   )r   Úunicoder   r   r	   r	   r
   r   0   r   c                 C   s   t | tƒr| S |  d¡S r   )r   r   r   r   r	   r	   r
   r   5   s   

c                 C   s   | j  |¡ d S r   )r   r   )r   r   r	   r	   r
   r   :   s   c                 C   s   t jdkrt dt| ƒ¡S | S )NÚdarwinÚNFKC)ÚsysÚplatformÚunicodedataÚ	normalizer   )Úpathr	   r	   r
   Únormalize_path>   s   
r"   c                 C   sv   dddd  | |¡g}tj|tjtjtjd�}| ¡ \}}| ¡ dkr$dS ddd	| t| ¡ ƒg}t |¡dkr9d
S dS )NÚgitúrev-listú--max-count=1z{}/{}©r   ÚstdoutÚstderrr   Tz
update-refzrefs/heads/%sF)	ÚformatÚspÚPopenÚPIPEÚcommunicateÚwaitr   ÚstripÚcall)ÚremoteÚbranchÚcmdÚpÚrevÚ_r	   r	   r
   Ú
try_rebaseF   s   r7   c                 C   s4   t jdd| gt jt jd�}| ¡ \}}| d¡ ¡ S )Nr#   Úconfig)r   r'   r   )r*   r+   r,   r-   r   r/   )Úkeyr4   Úvaluer6   r	   r	   r
   Ú
get_configR   s   r;   c                 C   sP   ddd| dg}t j|t jt jt jd�}| ¡ \}}| ¡ dkr!d S | d¡ ¡ S )Nr#   r$   r%   z--r&   r   r   )r*   r+   r,   r-   r.   r   r/   )r2   r3   r4   r5   r6   r	   r	   r
   Úget_prev_commitX   s   r<   c                 C   s2   | d u r
t t ¡ ƒ} ddtj d  }d | |¡S )Nz%+05déÿÿÿÿé$   z{} {})ÚintÚtimeÚtimezoner)   )Ú	timestampÚcurrtzr	   r	   r
   Úmk_whena   s   rD   c                 C   sŽ   t tdƒƒ}t tdƒƒ}t| td| ƒƒ t| td ||tƒ ¡ƒƒ t| tdt|ƒ|f ƒƒ t|ƒ}|r>t| td| ƒƒ t| tdƒƒ d S )Nz	user.namez
user.emailzcommit refs/heads/%s
zcommitter {} <{}> {}
zdata %d
%s
zfrom %s
z
deleteall
)r   r;   r   r   r)   rD   Úlenr<   )r   r2   ÚmessageÚunameÚemailÚheadr	   r	   r
   Ústart_commith   s   rJ   c                 C   sž   t |dƒ�@}t |tj¡rt| td| ƒƒ n	t| td| ƒƒ | ¡ }t| tdt|ƒ ƒƒ t| t|ƒƒ t| tdƒƒ W d   ƒ d S 1 sHw   Y  d S )NÚrbzM 100755 inline %s
zM 100644 inline %s
zdata %d
Ú
)ÚopenÚosÚaccessÚX_OKr   r   ÚreadrE   )r   ÚsrcpathÚtgtpathÚhandler   r	   r	   r
   Úadd_filet   s   "ørU   c                 C   s.   t | tdƒƒ t | tdƒƒ t | tdƒƒ d S )NzM 100644 inline .nojekyll
zdata 0
rL   )r   r   )r   r	   r	   r
   Úadd_nojekyll€   s   rV   c                 C   s    t j | ¡}d | t jj¡¡S )Nú/)rN   r!   ÚnormpathÚjoinÚsplitÚsep)ÚfnameÚnormr	   r	   r
   Úgitpath†   s   r^   c                 C   sà   g d¢}dt ji}tjdkrd|d< t j|fi |¤Ž}t|||ƒ t | ¡D ]%\}}}	|	D ]}
tj 	||
¡}t
|ƒ}ttjj|| d�ƒ}t|||ƒ q-q&|rRt|ƒ t|tdƒƒ |j ¡  | ¡ dkrntj td	ƒ¡ d S d S )
N)r#   zfast-importz--date-format=rawz--quietr   )r   é   r   FÚuniversal_newlines)ÚstartrL   r   zFailed to process commit.
)r*   r,   r   Úversion_infor+   rJ   rN   Úwalkr!   rY   r"   r^   ÚrelpathrU   rV   r   r   r   Úcloser.   r'   )Úsrcdirr2   rF   Únojekyllr3   Úkwargsr   r!   r6   ÚfnamesÚfnÚfpathÚgpathr	   r	   r
   Ú
run_import‹   s(   

ü
ÿrm   Úoriginúgh-pagesFc                 C   s|   t ||ƒst d|¡ d}t| |||ƒ dd||g}|r"| dd¡ tj|tjtjd�}| ¡ \}}	| 	¡ dk}
|
t
|	ƒfS )	NzFailed to rebase %s branch.Tr#   Úpushr_   z--force)r'   r(   r   )r7   ÚlogÚerrorrm   Úinsertr*   r+   r,   r-   r.   r   )Ú	directoryrF   r1   r2   Úforcerg   r3   ÚprocÚoutÚerrÚresultr	   r	   r
   Ú
ghp_import    s   
rz   r   )rn   ro   F)r   ÚloggingrN   Ú
subprocessr*   r   r@   r   Ú	getLoggerÚ__name__rq   rb   r   r   r   r"   r7   r;   r<   rD   rJ   rU   rV   r^   rm   rz   r	   r	   r	   r
   Ú<module>   s4   


	