
    $g$                     h   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
 n# e$ r	 d dlm
Z
 Y nw xY wdgZdZ G d de          Zej        d          d	k    r
d
 Zd Zd Zn	d Zd Zd Z G d de          ZddZddZd ZddZd Zd Zd Zd Zd Zd Z e!dk    r e              dS dS )    N)tz)datetime)quote
ghp_importz2.1.0c                       e Zd Zd ZdS )GhpErrorc                     || _         d S N)message)selfr   s     J/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/ghp_import.py__init__zGhpError.__init__   s        N)__name__
__module____qualname__r    r   r   r   r      s#            r   r      c                 X    t          | t                    r| S |                                 S r
   )
isinstancebytesencodetexts    r   encr      s'    dE"" 	K{{}}r   c                 Z    t          | t                    r|                     d          S | S Nzutf-8)r   r   decoder   s    r   decr      s+    dE"" 	(;;w'''r   c                     	 | j                             |           d S # t          $ r!}|j        t          j        k    r Y d }~d S d }~ww xY wr
   )stdinwriteIOErrorerrnoEPIPE)pipedataes      r   r"   r"   $   sh    	JT""""" 	 	 	w%+%% &%%%%%	s    
A	AA	c                 Z    t          | t                    r|                     d          S | S r   )r   unicoder   r   s    r   r   r   +   s+    dG$$ 	(;;w'''r   c                 Z    t          | t                    r| S |                     d          S r   )r   r*   r   r   s    r   r   r   0   s+    dG$$ 	K{{7###r   c                 :    | j                             |           d S r
   )r!   r"   )r&   r'   s     r   r"   r"   5   s    
r   c                   B    e Zd ZddZd ZddZd Zd Zd Zd Z	d	 Z
d
S )GitFc                 L    || _         d | _        d | _        d | _        d | _        d S r
   )	use_shellcmdr&   stderrstdout)r   r0   s     r   r   zGit.__init__:   s)    "	r   c                     |                      d          dk    rU| j        }|sd}t          |          }|                    d          r|t	          d          d          }t          |          d S )Nz	rev-parser   zUnknown Git errorzfatal: )callr2   r   
startswithlenr   )r   errors     r   
check_repozGit.check_repoB   sv    99[!!Q&&KE ,+JJE	** /c)nnoo.5//! '&r   c                    |                      dd|d|          }|dk    rdS t          | j                                                  }|r|                      ddd|z            }n|                      dd|z  |          }|dk    rd	S dS )
Nrev-list--max-count=1/r   Tz
update-refz-dzrefs/heads/%sFr5   r   r3   strip)r   remotebranch
no_historyrcrevs         r   
try_rebasezGit.try_rebaseL   s    YYz?vvvvv4NOO774$+##%%&& 	H</GHHBB<6)A3GGB775tr   c                 `    |                      d|           | j                                        S )Nconfig)r5   r3   r?   )r   keys     r   
get_configzGit.get_configY   s*    		(C   {  """r   c                     |                      dd|d          }|dk    rd S t          | j                                                  S )Nr;   r<   z--r   r>   )r   rA   rC   s      r   get_prev_commitzGit.get_prev_commit]   sC    YYz?FDAA7744;%%'''r   c                    | j         r1dd                    t          t          |                    z   | _        ndgt          |          z   | _        t          j        dk    rd|d<   d                                D ]"}|	                    |t          j                   #| j         |d<   t          j        | j        fi || _        | j        S )	Nzgit  git)r      r   Funiversal_newlineszstdin stdout stderrshell)r0   joinmapr   r1   listsysversion_infosplit
setdefaultspPIPEPopenr&   )r   argskwargsks       r   openzGit.openc   s    > 	,UD)9)9 : ::DHHwd+DHy((+0F'(&,,.. 	* 	*Aa)))).wHTX0000	yr   c                      | j         |i | | j                                        \  | _        | _        | j                                        S r
   )r_   r&   communicater3   r2   waitr   r\   r]   s      r   r5   zGit.callp   sG    	4"6"""%)Y%:%:%<%<"dky~~r   c                 `    | j         |d<   t          j        dgt          |          z   fi | d S )NrQ   rN   )r0   rY   
check_callrT   rc   s      r   re   zGit.check_callu   s8    .w
ugT

*55f55555r   N)F)r   r   r   r   r9   rE   rI   rK   r_   r5   re   r   r   r   r.   r.   9   s           " " "   # # #( ( (       
6 6 6 6 6r   r.   c                     |  t          t          j                              } t          j        t	          j                                                  d          }| d|S )Nz%zrM   )inttimer   nowr   tzlocalstrftime)	timestampcurrtzs     r   mk_whenrn   z   sO    	$$	\"*,,''0066Fii((r   c                    t          j        dt          |                    d                              }t          j        dt          |                    d                              }t          j        dt	                                }t          | t          d|z                       t          | t          d|d|d	|d
                     t          | t          dt          t          |                    |fz                       |                    |          }|r t          | t          d|z                       |r"t          | t          d|z                       d S t          | t          d                     d S )NGIT_COMMITTER_NAMEz	user.nameGIT_COMMITTER_EMAILz
user.emailGIT_COMMITTER_DATEzcommit refs/heads/%s
z
committer z <z> 
data %d
%s
zfrom %s
zD %s
z
deleteall
)	osgetenvr   rI   rn   r"   r   r7   rK   )	r&   rN   rA   r   prefixunameemailwhenheads	            r   start_commitr|      s`   I*C{0K0K,L,LMMEI+S1M1M-N-NOOE9)79955D	$,v566777	$uuudddCDDEEE	$Os3w<<'8'8'&BBCCDDDv&&D -dCd*++,,, (dC6)**+++++dC&&'''''r   c           
         t          |d          5 }t          j        |t          j                  r!t	          | t          d|z                       n t	          | t          d|z                       |                                }t	          | t          dt          |          z                       t	          | t          |                     t	          | t          d                     d d d            d S # 1 swxY w Y   d S )NrbzM 100755 inline %s
M 100644 inline %s
zdata %d
rs   )r_   ru   accessX_OKr"   r   readr7   )r&   srcpathtgtpathhandler'   s        r   add_filer      s$   	gt		 9Wbg&& 	?$2W<==>>>>$2W<==>>>{{}}dCc$ii/00111dCIIdCII                 s   CC::C>C>c                    |r!t           j                            |d          }nd}t          | t	          d|z                       t          | t	          d                     t          | t	          d                     d S )Nz	.nojekyllr   zdata 0
rs   )ru   pathrR   r"   r   )r&   rw   fpaths      r   add_nojekyllr      sv     V[11	$*U233444	$J   	$D		r   c                     t          | t          d                     t          | t          dt          t          |                    |fz                       d S )NzM 100644 inline CNAME
rt   )r"   r   r7   )r&   cnames     r   	add_cnamer      sO    	$-..///	$Os3u::&>>??@@@@@r   c                     t           j                            |           }d                    |                    t           j        j                            S )Nr=   )ru   r   normpathrR   rW   sep)fnamenorms     r   gitpathr      s9    7E""D88DJJrw{++,,,r   c                    t          |          }|                     dddt          j        d d           }t	          || |d         |d         |d                    t          j        ||d         	          D ]\  }}}|D ]}t
          j                            ||          }t          t
          j        
                    ||
                    }	|d         r&t
          j                            |d         |	          }	t          |||	           |d         rt          ||d                    |d         t          ||d                    t          |t          d                     |j                                         |                                dk    r.t&          j                            t          d                     d S d S )Nzfast-importz--date-format=rfc2822z--quiet)r!   r3   r2   rA   mesgrw   followlinks)r   )startnojekyllr   rs   r   zFailed to process commit.
)r   r_   rY   rZ   r|   ru   walkr   rR   r   relpathr   r   r   r"   r   r!   closerb   rU   r3   )
rN   srcdiroptsr&   r   _fnamesfnr   gpaths
             r   
run_importr      s   [[F88M#:I'$t  = =DsDNDL$x.III76tM7JKKK ) )a 	) 	)BGLLr**EBGOOEO@@AAEH~ <T(^U;;T5%((((	) J +T4>***G} $W&&&	$D		Jyy{{a
:;;<<<<< r   c                     dt          dddd          fdt          dd d	
          fdt          ddd
          fdt          dddd          fdt          dd d
          fdt          dddd          fdt          dddd          fdt          ddd
          fdt          d d!d"
          fd#t          d$ddd%          fd&t          d'ddd(          fgS ))N)z-nz--no-jekyllr   F
store_truez'Include a .nojekyll file in the branch.)destdefaultactionhelp)z-cz--cnamer   z(Write a CNAME file with the given CNAME.)r   r   r   )z-mz	--messager   zUpdate documentationz/The commit message to use on the target branch.)z-pz--pushpushz4Push the branch to origin/{branch} after committing.)z-xz--prefixrw   z~The prefix to add to each file that gets pushed to the remote. Only files below this prefix will be cleared out. [%(default)s])z-f--forceforcez!Force the push to the repository.)z-oz--no-historyrB   z(Force new commit without parent history.)z-rz--remoter@   originz0The name of the remote to push to. [%(default)s])z-bz--branchrA   zgh-pagesz-Name of the branch to write to. [%(default)s])z-sz--shellr0   z.Use the shell when invoking Git. [%(default)s])z-lz--follow-linksr   z0Follow symlinks when adding files. [%(default)s])dictr   r   r   optionsr      s   	:	!
 !
 !
 	 
D;
 
 
 	
 
d*B
 
 
 	
 
4G	
 
 
 	 
T&
 
 
 	 
D,4
 
 
 	
 
 ;	"
 "
 "
 	 
TC
 
 
 	
 
T@
 
 
 	
 
DA	
 
 
 	 
"4C	$
 $
 $
 	s? ?r   c                 z   t           j                            |           st          d| z            d t	                      D             }|                    |           t          |d                   }|                                 |                    |d         |d         |d                   st          d|d         z            t          || fi | |d	         r[|d
         s|d         r&|
                    d	|d         |d         d           d S |
                    d	|d         |d                    d S d S )NzNot a directory: %sc                 2    i | ]\  }}|d          |d         S )r   r   r   ).0r   r]   s      r   
<dictcomp>zghp_import.<locals>.<dictcomp>  s'    III)!VF6NF9-IIIr   r0   )r0   r@   rA   rB   zFailed to rebase %s branch.r   r   r   )ru   r   isdirr   r   updater.   r9   rE   r   re   )r   r]   r   rN   s       r   r   r   
  sM   7==   7,v5666IIwyyIIIDKK
[)
*
*
*CNN>>$x.$x.$|:LMM G4tH~EFFFsF##d###F| C= 	CD. 	CNN64>4>9MMMMMNN64>4>BBBBB	C Cr   c                     ddl m}   |             }|                    ddt                     |                    d           t	                      D ]\  }} |j        |i | |                                j        }	 t          |                    d          fi | d S # t          $ r%}|
                    |j                   Y d }~d S d }~ww xY w)Nr   )ArgumentParserz	--versionversion)r   r   	directory)argparser   add_argument__version__r   
parse_args__dict__r   popr   r8   r   )r   parserr\   r]   r(   s        r   mainr      s   ''''''^F
I{KKK
$$$		 - -fT,V,,,,'D 488K((11D11111      QY s   > B   
C*C

C__main__r
   )"r$   ru   
subprocessrY   rU   rh   dateutilr   r   shlexr   ImportErrorpipes__all__r   	Exceptionr   rV   r   r   r"   objectr.   rn   r|   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      sR    				     



                 .    y   
 A!  
  
     
$ $ $
  >6 >6 >6 >6 >6& >6 >6 >6B) ) ) )( ( ( ( 	 	 	   A A A
- - -
= = =,@ @ @FC C C,     " zDFFFFF s   ) 77