î h f”gã@sídZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZmZmZdd lmZdd l mZdd lmZdd lmZdZidd6dd6dd6dd6dd6Ziidd6dd6dd6dd6dd6d6idd6dd6dd6dd6dd6d 6ed!6ZerÍid"d6d"d6d#d6d$d6d%d6ed&d?„Zd@dA„ZdBdC„ZdDdE„ZdFdG„ZdHdI„ZdJdK„ZdLdM„ZdNdO„ZdPdQ„ZdRdS„ZdTdU„ZdVdW„ZdXefdYefdZefd[efd\d]d^„fgZdS)oÚinstallz'install everything from build directoryúprefix=Núinstallation prefixú exec-prefix=ú.(Unix only) prefix for platform-specific filesúhome=ú+(Unix only) home directory to install underú install-base=ú;base installation directory (instead of --prefix or --home)zinstall-platbase=z8base installation directory for platform-specific files z$(instead of --exec-prefix or --home)úroot=ú/opt/alt/python34/lib64/python3.4/distutils/command/install.pyÚinitialize_options’s2                       zinstall.initialize_optionscCs›|js|js|jr@|js-|jr@tddƒ‚n|jrj|js[|jrjtdƒ‚n|jr¯|js |js |js |js |jr¯tdƒ‚ntjdkrã|jrã|j dƒd|_qãn|j dƒtjdkr |j ƒn |j ƒ|j d ƒt jjƒd }td d ƒ\}}y t j}Wntk rrd }YnXi |jjƒd6|jjƒd6|jjƒd6|d6|d d…d6|d |dd6|d6|d 6|d6|d 6|d6|_tr#|j|jd<|j|jdú=z %s: %séÿÿÿÿr…) rZdistutils.fancy_getoptr‚rÚdebugÚ user_optionsÚ negative_optÚ translateÚgetattr)rUÚmsgr‚ZoptZopt_nameÚvalrVrVrWrlss  zinstall.dump_dirscCs®|jdk s|jdk r‹|jdkrK|jdkrK|jdksx|jdksx|jdksx|jdkr‡tdƒ‚ndS|j rÕ|j dkr²t dƒ‚n|j |_|_|j dƒnÕ|j dk r|j |_|_|j dƒn£|jdkrg|jdk r4tdƒ‚ntjjtjƒ|_tjjtjƒ|_n|jdkr…|j|_n|j|_|j|_|j dƒdS)z&Finalizes options for posix platforms.NzPinstall-base or install-platbase supplied, but installation scheme is incompletez$User base directory is not specifiedrrz*must not supply exec-prefix without prefixr)rBrCrHrErFrGrIrJr r=rKrÚ select_schemerAr?r@rir}Únormpathro)rUrVrVrWrm†s<      zinstall.finalize_unixc Cs|jrQ|jdkr'tdƒ‚n|j|_|_|jtjdƒn«|jdk rƒ|j|_|_|jdƒny|j dkr­tj j t j ƒ|_ n|j |_|_y|jtjƒWn%t k rûtdtjƒ‚YnXdS)z)Finalizes options for non-posix platformsNz$User base directory is not specifiedZ_userrz)I don't know how to install stuff on '%s')r=rKrrBrCr�rirjrAr?r}rŽroÚKeyError)rUrVrVrWrn®s"   zinstall.finalize_othercCsUt|}xDtD]<}d|}t||ƒdkrt||||ƒqqWdS)z=Sets the install directories by applying the install schemes.Úinstall_N)ÚINSTALL_SCHEMESÚ SCHEME_KEYSrŠÚsetattr)rUrjÚschemeÚkeyZattrnamerVrVrWr�Äs    zinstall.select_schemecCsˆx�|D]y}t||ƒ}|dk rtjdksFtjdkr[tjj|ƒ}nt||jƒ}t|||ƒqqWdS)NrYr)rŠrirjr}Ú expanduserr rtr“)rUÚattrsÚattrrŒrVrVrWÚ _expand_attrsÍs  zinstall._expand_attrscCs|jdddgƒdS)zNCalls `os.path.expanduser` on install_base, install_platbase and root.rBrCrDN)r™)rUrVrVrWrvÖszinstall.expand_basedirscCs#|jddddddgƒdS)z+Calls `os.path.expanduser` on install dirs.rErFrHrGrIrJN)r™)rUrVrVrWrxÛs zinstall.expand_dirscGs>x7|D]/}d|}t||tt||ƒƒƒqWdS)z!Call `convert_path` over `names`.r�N)r“rrŠ)rUÚnamesrjr˜rVrVrWrzás  zinstall.convert_pathscCsç|jdkr!|jj|_n|jdk rÅt|jtƒrZ|jjdƒ|_nt|jƒdkrƒ|jd}}n3t|jƒdkrª|j\}}n tdƒ‚t|ƒ}n d}d}||_||_ dS)z4Set `path_file` and `extra_dirs` using `extra_path`.Nú,r>rr^zY'extra_path' option must be a list, tuple, or comma-separated string with 1 or 2 elementsrZ) rNrsÚ isinstanceÚstrrqÚlenr rÚ path_filer)rUrŸrrVrVrWr{çs   zinstall.handle_extra_pathc GsDx=|D]5}d|}t||t|jt||ƒƒƒqWdS)z:Change the install directories pointed by name using root.r�N)r“r rDrŠ)rUršrjr˜rVrVrWr€s  zinstall.change_rootscCs�|js dSttjjdƒƒ}xc|jjƒD]R\}}|j|ƒr5tjj|ƒ r5|j d|ƒtj |dƒq5q5WdS)zCreate directories under ~.Nú~zos.makedirs('%s', 0o700)iÀ) r=rrir}r–rtÚitemsÚ startswithÚisdirZ debug_printÚmakedirs)rUrArjr}rVrVrWry s "zinstall.create_home_pathcCsª|jsU|jdƒ|jjdƒj}|jrU|tƒkrUtdƒ‚qUnx!|jƒD]}|j|ƒqbW|j r�|j ƒn|j r|j ƒ}|j rôt|j ƒ}x5tt|ƒƒD]}|||d…||‰szinstall.)rNr)rNr)rNr)r Nr!)r"Nr#)r$Nr%)r&Nr')r(Nr))r*Nr+)r,Nr-)zcompiler/r0)r1Nr2)r3r4r5)zforcer7r8)r9Nr:)r;Nr<) Ú__name__Ú __module__Ú __qualname__Z descriptionr‡Zboolean_optionsrur±rrˆrXr�rlrmrnr�r™rvrxrzr{r€ryr®r¦r§r´rµr¶r·r¸Z sub_commandsrVrVrVrWrIsŠ     M ”  (       ,          r)zpurelibzplatlibzheaderszscriptszdata)Ú__doc__roriZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rruZWINDOWS_SCHEMEr‘r’rrVrVrVrWÚsb