ž «ÿf0:c@s˜dZddlZddlZddlmZddlmZddlmZm Z ddl Tddl m Z ddl mZGd d „d eƒZdS( uzdistutils.command.bdist_wininst Implements the Distutils 'bdist_wininst' command: create a windows installer exe-program.iN(uCommand(u get_platform(u create_treeu remove_tree(u*(uget_python_version(ulogcBsÚ|EeZdZdZd4dddeƒfddd d fd d3d d fd5d6d7d8d9d:d;d<d=g ZddddgZd%d&„Zd'd(„Z d)d*„Z d+d,„Z d3d-d.„Z d/d0„Z d1d2„Zd3S(>u bdist_wininstu-create an executable installer for MS Windowsu bdist-dir=u1temporary directory for creating the distributionu plat-name=upu;platform name to embed in generated filenames (default: %s)u keep-tempuku/keep the pseudo-installation tree around after u!creating the distribution archiveutarget-version=u!require a specific python versionu on the target systemuno-target-compileucu/do not compile .py to .pyc on the target systemuno-target-optimizeuou:do not compile .py to .pyo (optimized)on the target systemu dist-dir=udu-directory to put final built distributions inubitmap=ubu>bitmap to use for the installer instead of python-powered logoutitle=utu?title to display on the installer background instead of defaultu skip-buildu2skip rebuilding everything (for testing/debugging)uinstall-script=uTbasename of installation script to be run afterinstallation or before deinstallationupre-install-script=u{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distributionuuser-access-control=uŠspecify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UACcCsyd|_d|_d|_d|_d|_d|_d|_d|_d|_ d|_ d|_ d|_ d|_ dS(Ni(uNoneu bdist_diru plat_nameu keep_tempuno_target_compileuno_target_optimizeutarget_versionudist_dirubitmaputitleu skip_builduinstall_scriptupre_install_scriptuuser_access_control(uself((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyuinitialize_options:s            u bdist_wininst.initialize_optionscCs\|jdd ƒ|jdkr|jrR|jrR|jjdƒ}|j|_n|jdƒj}t j j |dƒ|_n|j s”d|_ n|j rð|jj ƒrðtƒ}|j rä|j |krätd|fƒ‚n||_ n|jdd d ƒ|jrXxI|jjD]%}|jt j j|ƒkrPqqWtd|jƒ‚ndS( Nubdistu skip_builduwininstuuMtarget version can only be %s, or the '--skip-build' option must be specifiedudist_diru plat_nameu(install_script '%s' not found in scripts(u skip_buildu skip_build(udist_dirudist_dir(u plat_nameu plat_name(uset_undefined_optionsu bdist_diruNoneu skip_buildu plat_nameu distributionuget_command_objuget_finalized_commandu bdist_baseuosupathujoinutarget_versionuhas_ext_modulesuget_python_versionuDistutilsOptionErroruinstall_scriptuscriptsubasename(uselfubdistu bdist_baseu short_versionuscript((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyufinalize_optionsJs4      ubdist_wininst.finalize_optionsc CsÇtjdkr<|jjƒs-|jjƒr<tdƒ‚n|jsU|jdƒn|jdddƒ}|j |_ |j|_d|_ |j |_ |jdƒ}d|_ d|_|jjƒrE|j}|s|jsëtd ƒ‚tjdd …}nd |j |f}|jdƒ}tjj|jd |ƒ|_nxGdD]?}|jƒ}|dkrw|d}nt|d||ƒqLWtjd|j ƒ|jƒtjjdtjj|j dƒƒ|jƒtjd=ddlm }|ƒ} |jj!ƒ} |j"| dd|j ƒ} |j#| | |j$ƒ|jjƒrYt%ƒ} nd} |jj&j'd| |j(| ƒfƒtj)d| ƒtj*| ƒ|j+sÃt,|j d|j-ƒndS(Nuwin32u^distribution contains extensions and/or C libraries; must be compiled on a Windows 32 platformubuilduinstallureinit_subcommandsiiu install_libu Should have already checked thisiu.%s-%sulibupurelibuplatlibuheadersuscriptsudatau/Include/$dist_nameuinstall_uinstalling to %suPURELIB(umktempuzipuroot_diruanyu bdist_wininsturemoving temporary file '%s'udry_run(upurelibuplatlibuheadersuscriptsudata(.usysuplatformu distributionuhas_ext_modulesuhas_c_librariesuDistutilsPlatformErroru skip_buildu run_commandureinitialize_commandu bdist_dirurootuwarn_diru plat_nameucompileuoptimizeutarget_versionuAssertionErroruversionuget_finalized_commanduosupathujoinu build_baseu build_libuupperusetattruloguinfouensure_finalizeduinserturunutempfileumktempu get_fullnameu make_archiveu create_exeubitmapuget_python_versionu dist_filesuappenduget_installer_filenameudebuguremoveu keep_tempu remove_treeudry_run( uselfuinstallu install_libutarget_versionuplat_specifierubuildukeyuvalueumktempuarchive_basenameufullnameuarcnameu pyversion((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyurunpsf               %       ubdist_wininst.runc Csôg}|jj}|jdƒ|jp+dd}dd„}x~dddd d d d d gD]^}t||dƒ}|r]|d|jƒ||ƒf}|jd|||ƒfƒq]q]W|jdƒ|jrì|jd|jƒn|jd||ƒƒ|jd|j ƒ|jd|j ƒ|j rM|jd|j ƒn|j rm|jd|j ƒn|j p‚|jj ƒ}|jd||ƒƒddl }ddl} d|j|j ƒƒ| jf} |jd| ƒdj|ƒS(Nu [metadata]uu cSs|jddƒS(Nu u\n(ureplace(us((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyuescapeÎsu)bdist_wininst.get_inidata..escapeuauthoru author_emailu descriptionu maintainerumaintainer_emailunameuurluversionu %s: %su%s=%su [Setup]uinstall_script=%suinfo=%sutarget_compile=%dutarget_optimize=%dutarget_version=%suuser_access_control=%sutitle=%siuBuilt %s with distutils-%su build_info=%s(u distributionumetadatauappendulong_descriptionugetattru capitalizeuinstall_scriptuno_target_compileuno_target_optimizeutarget_versionuuser_access_controlutitleu get_fullnameutimeu distutilsuctimeu __version__ujoin( uselfulinesumetadatauinfouescapeunameudatautitleutimeu distutilsu build_info((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyu get_inidataÁs<   $      ubdist_wininst.get_inidatac Csddl}|j|jƒ|jƒ}|j|ƒ}|jd|ƒ|rrt|dƒjƒ}t|ƒ}nd}t|dƒ} | j |j ƒƒ|r°| j |ƒnt |t ƒrÑ|j dƒ}n|d}|jr+t|jddd ƒ} | jƒj d ƒ} WdQX|| d }n |d}| j |ƒ|jd d t|ƒ|ƒ} | j | ƒ| j t|dƒjƒƒdS( Niu creating %surbuwbumbcssuruencodingulatin-1s ubitmap to use for the installer instead of python-powered logo(utitle=utu?title to display on the installer background instead of default(u skip-buildNu2skip rebuilding everything (for testing/debugging)(uinstall-script=NuTbasename of installation script to be run afterinstallation or before deinstallation(upre-install-script=Nu{Fully qualified filename of a script to be run before any files are installed. This script need not be in the distribution(uuser-access-control=NuŠspecify Vista's UAC handling - 'none'/default=no handling, 'auto'=use UAC if target Python installed for all users, 'force'=always use UAC(u__name__u __module__u __qualname__u descriptionuNoneu get_platformu user_optionsuboolean_optionsuinitialize_optionsufinalize_optionsurunu get_inidatau create_exeuget_installer_filenameu get_exe_bytes(u __locals__((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyu bdist_wininstsN      & Q .5 u bdist_wininst(u__doc__usysuosudistutils.coreuCommandudistutils.utilu get_platformudistutils.dir_utilu create_treeu remove_treeudistutils.errorsudistutils.sysconfiguget_python_versionu distutilsulogu bdist_wininst(((uD/opt/alt/python33/lib64/python3.3/distutils/command/bdist_wininst.pyus