Yfg @sdZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZmZmZdd lmZdd l mZdd lmZdd lmZdZddddddddddiZdddddddddddiddddddd ddddid!eiZerdd"dd"dd#dd$dd%ied&d?Zd@dAZdBdCZdDdEZdFdGZdHdIZdJdKZdLdMZdNdOZdPdQZdRdSZdTdUZdVdWZdXefdYefdZefd[efd\d]d^fgZdS)oinstallz'install everything from build directoryprefix=Ninstallation prefix exec-prefix=.(Unix only) prefix for platform-specific fileshome=+(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/python35/lib64/python3.5/distutils/command/install.pyinitialize_optionss2                       zinstall.initialize_optionscCsr|js|js|jr=|js-|jr=tdd|jrd|jsX|jrdtd|jr|js|js|js|js|jrtdtjdkr|jr|j dd|_|j dtjdkr|j n |j |j d t jjd }td d \}}y t j}Wntk rcd }YnXd|jjd|jjd|jjd|d|d dd|d |dd|d |d|d |d|i |_tr|j|jd<|j|jd<|j|j d|j|jd<|j|jd=z %s: %sr) rZdistutils.fancy_getoptrrdebug user_options negative_opt translategetattr)rUmsgrZoptZopt_namevalrVrVrWrjss  zinstall.dump_dirscCs|jdk s|jdk r|jdkrK|jdkrK|jdksx|jdksx|jdksx|jdkrtddS|j r|j dkrt d|j |_|_|j dn|j dk r|j |_|_|j dn|jdkr^|jdk r+tdtjjtj|_tjjtj|_n|jdkry|j|_|j|_|j|_|j ddS)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@rgr{normpathrm)rUrVrVrWrks<       zinstall.finalize_unixc Cs|jrN|jdkr$td|j|_|_|jtjdn|jdk r|j|_|_|jdnv|j dkrtj j t j |_ |j |_|_y|jtjWn%t k rtdtjYnXdS)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=rKrrBrCrrgrhrAr?r{rrmKeyError)rUrVrVrWrls"   zinstall.finalize_othercCsRt|}xAtD]9}d|}t||dkrt||||qWdS)z=Sets the install directories by applying the install schemes.install_N)INSTALL_SCHEMES SCHEME_KEYSrsetattr)rUrhschemekeyZattrnamerVrVrWrs    zinstall.select_schemecCsx{|D]s}t||}|dk rtjdksFtjdkrXtjj|}t||j}t|||qWdS)NrYr)rrgrhr{ expanduserr rrr)rUZattrsattrrrVrVrW _expand_attrss  zinstall._expand_attrscCs|jdddgdS)zNCalls `os.path.expanduser` on install_base, install_platbase and root.rBrCrDN)r)rUrVrVrWrtszinstall.expand_basedirscCs#|jddddddgdS)z+Calls `os.path.expanduser` on install dirs.rErFrHrGrIrJN)r)rUrVrVrWrvs zinstall.expand_dirscGs>x7|D]/}d|}t||tt||qWdS)z!Call `convert_path` over `names`.rN)rrr)rUnamesrhrrVrVrWrxs  zinstall.convert_pathscCs|jdkr|jj|_|jdk rt|jtrT|jjd|_t|jdkr}|jd}}n3t|jdkr|j\}}n tdt|}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) rNrq isinstancestrrolenr r path_filer})rUrr}rVrVrWrys   zinstall.handle_extra_pathc GsDx=|D]5}d|}t||t|jt||qWdS)z:Change the install directories pointed by name using root.rN)rr rDr)rUrrhrrVrVrWr~s  zinstall.change_rootscCs|js dSttjjd}x`|jjD]O\}}|j|r5tjj| r5|j d|tj |dq5WdS)zCreate directories under ~.N~zos.makedirs('%s', 0o700)i) r=rrgr{rrritems startswithisdirZ debug_printmakedirs)rUrArhr{rVrVrWrw s "zinstall.create_home_pathcCs|jsO|jd|jjdj}|jrO|tkrOtdx!|jD]}|j|q\W|j r|j |j r |j }|j rt|j }x2tt|D]}|||d||szinstall.)rNr)rNr)rNr)r Nr!)r"Nr#)r$Nr%)r&Nr')r(Nr))r*Nr+)r,Nr-)r.r/r0)r1Nr2)r3r4r5)r6r7r8)r9Nr:)r;Nr<) __name__ __module__ __qualname__Z descriptionrZboolean_optionsrsrrrrXrrjrkrlrrrtrvrxryr~rwrrrrrrrrZ sub_commandsrVrVrVrWrIs      M  (       ,          r)rrrrr)__doc__rmrgZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rrsZWINDOWS_SCHEMErrrrVrVrVrWs\