$Yfg @sddlZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZmZmZdd lmZdd l mZdd lmZdd lmZd ZddddddddddiZdddddddddddidddddddddddid 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==z %s: %sr) rZdistutils.fancy_getoptrrdebug user_options negative_opt translategetattr)rUmsgroptZopt_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)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)Nz$User base directory is not specified_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)Ninstall_)INSTALL_SCHEMES SCHEME_KEYSrsetattr)rUrhschemekeyZattrnamerVrVrWrs    zinstall.select_schemecCsx{|D]s}t||}|dk rtjdksFtjdkrXtjj|}t||j}t|||qWdS)NrYr)rrgrhr| expanduserr rsr)rUZattrsattrrrVrVrW _expand_attrss  zinstall._expand_attrscCs|jdddgdS)NrBrCrD)r)rUrVrVrWruszinstall.expand_basedirscCs#|jddddddgdS)NrErFrHrGrIrJ)r)rUrVrVrWrws zinstall.expand_dirscGs>x7|D]/}d|}t||tt||qWdS)Nr)rrr)rUnamesrhrrVrVrWrys  zinstall.convert_pathscCs|jdkr|jj|_|jdk rt|jtrT|jjd|_t|jdkr}|jd}}n3t|jdkr|j\}}n tdt|}n d}d}||_||_ dS)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~rVrVrWrzs   zinstall.handle_extra_pathc GsDx=|D]5}d|}t||t|jt||qWdS)Nr)rr rDr)rUrrhrrVrVrWrs  zinstall.change_rootscCs|js dSttjjd}x`|jjD]O\}}|j|r5tjj| r5|j d|tj |dq5WdS)N~zos.makedirs('%s', 0o700)i) r=rrgr|rrsitems startswithisdirZ debug_printmakedirs)rUrArhr|rVrVrWrx 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__ descriptionrZboolean_optionsrtrrrrXrrjrkrlrrrurwryrzrrxrrrrrrrrZ sub_commandsrVrVrVrWrIs      M  (       ,          r)rrrrr)rmrgZ distutilsrZdistutils.corerZdistutils.debugrZdistutils.sysconfigrZdistutils.errorsrZdistutils.file_utilrZdistutils.utilrr r r r Zsiter rrtZWINDOWS_SCHEMErrrrVrVrVrWsZ