Current File : //opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyc
�
J�Uc@�s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
dZdje
ee��Zej�Ze	jdkr�d�ZndZe	jd	kr�d
Zndefd��YZd
�Zd�Zd�Zd�Zed�Zed�Zd�Zdd�Z d�Z!d�Z"d�Z#d�Z$d�Z%e&dkr�e%�ndS(i����(twith_statementNiiit.cC�s
|j�S(N(tnext(tgen((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyt<lambda>stbintwin32tScriptst	UserErrorcB�seZRS((t__name__t
__module__(((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyRscC�sCt|�}|j|�r?|||d!tjdgkr?tStS(smCheck if path is within matchwith's tree.

    >>> _dirmatch('/home/foo/bar', '/home/foo/bar')
    True
    >>> _dirmatch('/home/foo/bar/', '/home/foo/bar')
    True
    >>> _dirmatch('/home/foo/bar/etc', '/home/foo/bar')
    True
    >>> _dirmatch('/home/foo/bar2', '/home/foo/bar')
    False
    >>> _dirmatch('/home/foo/bar2/etc', '/home/foo/bar')
    False
    it(tlent
startswithtostseptTruetFalse(tpatht	matchwithtmatchlen((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyt	_dirmatch!s
 cC�s�tjj|td�}tj|ddgdidtj�}|j�\}}|jra|sgt	�|j
d�j�}|dtt
|d�fS(	s/obtain version and path info from a virtualenv.tpythons-cs?import sys;print (sys.version[:3]);print ("\n".join(sys.path));tenvtstdoutsutf-8ii(RRtjointenv_bin_dirt
subprocesstPopentPIPEtcommunicatet
returncodetAssertionErrortdecodet
splitlinestfiltertbool(t	venv_patht
executabletpRterrtlines((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyt_virtualenv_sys6s	c�s0tjj��s%td���ntjj|�rJtd|��ntjd�|f�tj�|dtdtj	d��t
|�\}}tjd�t�||��fd�}||�r�tjd	�t|�|�nt
|�}||d
�}|st
|��t�|�dS(Nssrc dir %r does not existsdest dir %r existss"cloning virtualenv '%s' => '%s'...tsymlinkstignores*.pycsfixing scripts in bin...c�st�fd�|D��S(Nc3�s$|]}t|��r|VqdS(N(R(t.0ti(tsrc_dir(sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pys	<genexpr>Us(tany(ts(R/(sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyRUssfixing paths in sys.path...i(RRtexistsRtloggertinfotshutiltcopytreeRtignore_patternsR*t
fixup_scriptstfixup_syspath_itemsR tfix_symlink_if_necessary(R/tdst_dirtversiontsys_paththas_oldtv_syst	remaining((R/sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pytclone_virtualenvGs&	

c	C�s�tjd�x�tj|�D]�\}}}x�tj||�D]�}tjj||�}tjj|�r?tjj	|�}|j
|�r�|j||�}tjdj
|��tj|�tj||�q�q?q?WqWdS(NsEscanning for internal symlinks that point to the original virtual envsfixing symlink in {}(R3R4Rtwalkt	itertoolstchainRRtislinktrealpathR
treplacetdebugtformattremovetsymlink(	R/R;tdirpathtdirnamest	filenamesta_filetfull_file_pathttargett
new_target((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyR:as

c	C�sWtjj|t�}ttj|��\}}}tjd�}x|D]}	tjj||	�}
|	dd|dgkr�qIqI|	jd�r�|j	|	�r�qIqI|	j
d�r�qIqI|	dks�|	jd�r�ttjj||	�||�qItjj|
�rt
|
||�qItjj|
�rIt||	|||d|�qIqIWdS(	Ns(pythonw?([0-9]+(\.[0-9]+(\.[0-9]+)?)?)?$Rspython%ssactivate_this.pys.pyctactivates	activate.trewrite_env_python(RRRRRRBtretcompileR
tmatchtendswithtfixup_activateREt
fixup_linktisfilet
fixup_script_(told_dirtnew_dirR<RTtbin_dirtroottdirstfilestpybinretfile_tfilename((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyR8ts$
"c�s�dtjjtjj|��}dtjjtjj|���d}tjj||��t�d��9}|jd�dkr�dS|jd�|j��WdQX�s�dSd���fd�}	y�dj
d�j�}
Wntk
r�dSX|
j
d�sdS|
|kr&|	�n�|
j
|�rX|
t|�|krX|	|�nU|r�|
j
|�r�|
|kr�|	�q�|
t|�|kr�|	|�q�ndSdS(	Ns#!%s/bin/pythons#!/usr/bin/env pythontrbis#!ic�swtjd���}|r*||}n|djd�}t�d��%}|j|�|j�d�WdQXdS(Ns	fixing %ss
sutf-8twbi(R3RHtencodetopentwritet
writelines(R<tshebangtf(ReR)tnew_shebang(sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pytrewrite_shebang�s

sutf-8(RRtnormcasetabspathRRitreadtseekt	readlinestNoneR!tstriptUnicodeDecodeErrorR
R(R`RdR]R^R<RTtold_shebangtenv_shebangRmRotbang((ReR)Rnsv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyR\�s:""





cC�s�tjd|�t|d��}|j�jd�}WdQX|j||�}t|d��}|j|jd��WdQXdS(Ns	fixing %sRfsutf-8Rg(R3RHRiRrR!RGRjRh(ReR]R^Rmtdata((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyRY�scC�s�tjd|�|dkr/tj|�}ntjjtjj|��j||�}tjj	|�s�tjjtjj
||��}t}nt}t
||�r�|r�|t|�jtj�}q�|j||d�}nt||�dS(Ns	fixing %si(R3RHRuRtreadlinkRtdirnameRqRGtisabsRRRRRtlstripRt_replace_symlink(ReR]R^RQtorigdirtrellink((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyRZ�s!	cC�s.d|}tj||�tj||�dS(Ns%s.new(RRKtrename(Ret	newtargetttmpfn((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyR��s
c	C�s'x |D]}tjj|�s%qntjjtjj|��}t||�r�|j||d�}tjj|�s�qq�nt||�s�qnttj	|��\}}}xg|D]_}tjj
||�}|jd�r�t|||�q�|jd�r�t
|||�q�q�WqWdS(Nis.pths	.egg-link(RRtisdirRpRqRRGR2RRBRRXtfixup_pth_filetfixup_egglink_file(	tsyspathR]R^RR`RaRbRdRe((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyR9�s"
	
cC�s�tjd|�t|d��}|j�}WdQXt}x�t|�D]}\}}|jd�j�}|sH|jd�sH|jd�r�qHqHt	||�rH|j
||d�||<t}qHqHW|r�t|d��}|j|�WdQXndS(Ns	fixing %sRfsutf-8t#simport iRg(
R3RHRiRtRt	enumerateR!RvR
RRGRRk(ReR]R^RmR)t
has_changetnumtline((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyR��s%
cC�s�tjd|�t|d��"}|j�jd�j�}WdQXt||�r�|j||d�}t|d��'}|djd�}|j	|�WdQXndS(Ns	fixing %sRfsutf-8iRgs
(
R3RHRiRrR!RvRRGRhRj(ReR]R^Rmtlink((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyR�
s!c
C�sKtjd�}|jddddddtdd	�|j�\}}y|\}}Wn,tk
r�d
jt�GH|jd�nXt	j
jt	j
j|��}t	j
jt	j
j|��}t
jt
jt
jftd|j�}t
jd
|dd�yt||�Wn4tk
rFtj�d}|jt|��nXdS(NsBusage: %prog [options] /path/to/existing/venv /path/to/cloned/venvs-vtactiontcounttdesttverbosetdefaultthelpt	verbositysvirtualenv-clone {}snot enough arguments given.itlevelRIs%(message)si(toptparsetOptionParsert
add_optionRt
parse_argst
ValueErrorRIt__version__terrorRRtnormpathRqtloggingtWARNINGtINFOtDEBUGtminR�tbasicConfigRARtsystexc_infotstr(tparsertoptionstargsR]R^tloglevelte((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pytmains,


t__main__(iii(ii('t
__future__RR�R�Rtos.pathRUR5RR�RCtversion_infoRtmapR�R�t	getLoggerR3RRtplatformt	ExceptionRRR*RAR:RR8R\RYRuRZR�R9R�R�R�R	(((sv/builddir/build/BUILDROOT/imh-python-2.7.12-1.el7.x86_64/opt/imh-python/lib/python2.7/site-packages/clonevirtualenv.pyt<module>sB					2