
    2yi$                     P   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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         yy# e$ r	 d dlm
Z
 Y |w xY w)    N)tz)datetime)quote
ghp_importz2.1.0c                       e Zd Zd Zy)GhpErrorc                     || _         y N)message)selfr   s     L/var/www/html/content_weaver/venv/lib/python3.12/site-packages/ghp_import.py__init__zGhpError.__init__   s	        N)__name__
__module____qualname__r    r   r   r   r      s    r   r      c                 F    t        | t              r| S | j                         S r
   )
isinstancebytesencodetexts    r   encr      s    dE"K{{}r   c                 H    t        | t              r| j                  d      S | S Nzutf-8)r   r   decoder   s    r   decr      s     dE";;w''r   c                     	 | j                   j                  |       y # t        $ r(}|j                  t        j                  k7  r Y d }~y d }~ww xY wr
   )stdinwriteIOErrorerrnoEPIPE)pipedataes      r   r"   r"   $   sA    	JJT" 	ww%++% &	s    	AA

Ac                 H    t        | t              r| j                  d      S | S r   )r   unicoder   r   s    r   r   r   +   s     dG$;;w''r   c                 H    t        | t              r| S | j                  d      S r   )r   r*   r   r   s    r   r   r   0   s     dG$K{{7##r   c                 :    | j                   j                  |       y r
   )r!   r"   )r&   r'   s     r   r"   r"   5   s    

r   c                   @    e Zd Zd
dZd Zd
dZd Zd Zd Zd Z	d Z
y	)Gitc                 J    || _         d | _        d | _        d | _        d | _        y r
   )	use_shellcmdr&   stderrstdout)r   r0   s     r   r   zGit.__init__:   s%    "	r   c                     | j                  d      dk7  rE| j                  }|sd}t        |      }|j                  d      r|t	        d      d  }t        |      y )Nz	rev-parser   zUnknown Git errorzfatal: )callr2   r   
startswithlenr   )r   errors     r   
check_repozGit.check_repoB   sZ    99[!Q&KKE+JE	*c)no.5/! 'r   c                     | j                  dd|d|      }|dk7  ryt        | j                  j                               }|r| j                  ddd|z        }n| j                  dd|z  |      }|dk7  ry	y)
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   sx    YYz?vv4NO7$++##%&</GHB<6)A3GB7r   c                 Z    | j                  d|       | j                  j                         S )Nconfig)r5   r3   r?   )r   keys     r   
get_configzGit.get_configY   s#    		(C {{  ""r   c                 |    | j                  dd|d      }|dk7  ry t        | j                        j                         S )Nr;   r<   z--r   r>   )r   rA   rC   s      r   get_prev_commitzGit.get_prev_commit]   s8    YYz?FDA74;;%%''r   c                    | j                   r(ddj                  t        t        |            z   | _        ndgt        |      z   | _        t        j                  dk\  rd|d<   dj                         D ]"  }|j                  |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 ::DHwd+DHy(+0F'(&,,. 	*Aa)	*..wHHTXX00	yyr   c                      | j                   |i | | j                  j                         \  | _        | _        | j                  j                         S r
   )r_   r&   communicater3   r2   waitr   r\   r]   s      r   r5   zGit.callp   sA    		4"6"%)YY%:%:%<"dkyy~~r   c                 h    | j                   |d<   t        j                  dgt        |      z   fi | y )NrQ   rN   )r0   rY   
check_callrT   rc   s      r   re   zGit.check_callu   s+    ..w
ugT
*5f5r   N)F)r   r   r   r   r9   rE   rI   rK   r_   r5   re   r   r   r   r.   r.   9   s*    "#( 
6r   r.   c                     | t        t        j                               } t        j                  t	        j
                               j                  d      }| d|S )Nz%zrM   )inttimer   nowr   tzlocalstrftime)	timestampcurrtzs     r   mk_whenrn   z   sB    		$	\\"**,'006F((r   c                 t   t        j                  dt        |j                  d                  }t        j                  dt        |j                  d                  }t        j                  dt	                     }t        | t        d|z               t        | t        d|d|d	|d
             t        | t        dt        t        |            |fz               |j                  |      }|rt        | t        d|z               |rt        | t        d|z               y t        | t        d             y )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    II*C{0K,LMEII+S1M-NOE99)795D	$,v567	$udCDE	$Os3w<'8'&BBC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               |j                         }t	        | t        dt        |      z               t	        | t        |             t	        | t        d             d d d        y # 1 sw Y   y xY w)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	 99Wbgg&$2W<=>$2W<=>{{}dCc$i/01dCIdCI  s   B1CCc                     |r!t         j                  j                  |d      }nd}t        | t	        d|z               t        | t	        d             t        | t	        d             y )Nz	.nojekyllr   zdata 0
rs   )ru   pathrR   r"   r   )r&   rw   fpaths      r   add_nojekyllr      sO    V[1	$*U234	$J 	$D	r   c                     t        | t        d             t        | t        dt        t        |            |fz               y )NzM 100644 inline CNAME
rt   )r"   r   r7   )r&   cnames     r   	add_cnamer      s3    	$-./	$Os3u:&>>?@r   c                     t         j                  j                  |       }dj                  |j	                  t         j                  j
                              S )Nr=   )ru   r   normpathrR   rW   sep)fnamenorms     r   gitpathr      s6    77E"D88DJJrww{{+,,r   c                    t        |      }| j                  dddt        j                  d d       }t	        || |d   |d   |d          t        j                  ||d   	      D ]  \  }}}|D ]  }t
        j                  j                  ||      }t        t
        j                  j                  ||
            }	|d   r#t
        j                  j                  |d   |	      }	t        |||	         |d   rt        ||d          |d   t        ||d          t        |t        d             |j                   j#                          |j%                         dk7  r)t&        j(                  j                  t        d             y y )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      sS   [F88M#:I''$t  =DsDNDL$x.I776tM7JK )a 	)BGGLLr*EBGGOOEO@AEH~T(^U;T5%(	)) JT4>*G} $W&	$D	JJ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                    t         j                  j                  |       st        d| z        t	               D ci c]  \  }}|d   |d    }}}|j                         t        |d         }|j                          |j                  |d   |d   |d         st        d	|d   z        t        || fi | |d
   r?|d   s|d   r|j                  d
|d   |d   d       y |j                  d
|d   |d          y y c c}}w )NzNot a directory: %sr   r   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   r   rN   s        r   r   r   
  s   77== ,v566?FyI)!VF6NF9--IDIKK
[)
*CNN>>$x.$x.$|:LM4tH~EFFsF#d#F|=D.NN64>4>9MNN64>4>B	  Js   D c                     ddl m}   |        }|j                  ddt               |j                  d       t	               D ]  \  }} |j                  |i |  |j                         j                  }	 t        |j                  d      fi | y # t        $ r%}|j                  |j                         Y d }~y 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
$	 -fT,V,- ''D 488K(1D1  QYY s   6B 	C B;;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      s     	  
    .y 
 A!


$
>6& >6B)( 	A
-
=,@FC, " zF I	  s   B B%$B%