;ò |oPFc@sldkZeidjZdkZdkZdkZdefd„ƒYZeoCdkZdk Z dk Tdfd„ƒYZ dfd„ƒYZ n%dk Z dkZdkZdkZd d d d d dgZyeidƒZWn dZnXyeWnej odZdZnXgZd„ZdZdZd„Zd„Zd„Zd efd„ƒYZdS(Nswin32sCalledProcessErrorcBstZd„Zd„ZRS(NcCs||_||_dS(N(s returncodesselfscmd(sselfs returncodescmd((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys__init__ s cCsd|i|ifSdS(Ns-Command '%s' returned non-zero exit status %d(sselfscmds returncode(sself((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys__str__ s(s__name__s __module__s__init__s__str__(((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pysCalledProcessError s (s*s STARTUPINFOcBs&tZdZeZeZeZdZRS(Ni(s__name__s __module__sdwFlagssNones hStdInputs hStdOutputs hStdErrors wShowWindow(((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys STARTUPINFO s s pywintypescBstZeZRS(N(s__name__s __module__sIOErrorserror(((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys pywintypes&ssPopensPIPEsSTDOUTscalls check_calls SC_OPEN_MAXiiicCs]xVtD]M}|idtiƒdjo+yti|ƒWqUtj oqUXqqWdS(Ns _deadstatei(s_activesinstspollssyssmaxintsremoves ValueError(sinst((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys_cleanup8siÿÿÿÿiþÿÿÿcOst||ŽiƒSdS(N(sPopens popenargsskwargsswait(s popenargsskwargs((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pyscallAscOs[t||Ž}|idƒ}|tjo|d}n|ot||ƒ‚n|SdS(Nsargsi(scalls popenargsskwargssretcodesgetscmdsNonesCalledProcessError(s popenargsskwargssretcodescmd((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys check_callCs cCs`g}t}x@|D]8}g}|o|idƒnd|jpd|jp |dj}|o|idƒnx–|D]Ž}|djo|i|ƒq||djo2|idt|ƒdƒg}|idƒq||o|i |ƒg}n|i|ƒq|W|o|i |ƒn|o|i |ƒ|idƒqqWdi |ƒSdS(Ns s ss"s\is\"( sresultsFalses needquotesseqsargsbs_bufsappendscslensextendsjoin(sseqscs needquotesresultsargsbs_buf((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys list2cmdlineKs8&     cBs÷tZdeeeeeeeeeeedd„ Zd„Zd„Zed„ZeoOd„Z d„Z d„Z d „Z ed „Z d „Zd „Zd „ZnLd„Z d„Zd„Zd„Z d„Zed„Z d„Zd„ZRS(NicCsútƒt|_t|ttfƒ otdƒ‚nt o8|t j ot dƒ‚n|ot dƒ‚q°n;| t j ot dƒ‚n|djot dƒ‚nt |_t |_t |_t |_t |_| |_|i|||ƒ\}}}}}}|i||||| | | | || ||||||ƒ|ot#i$|d|ƒ|_n|o?| ot#i$|d|ƒ|_q°t#i$|d |ƒ|_n|o?| ot#i$|d|ƒ|_qöt#i$|d |ƒ|_ndS( Nsbufsize must be an integers0preexec_fn is not supported on Windows platformss/close_fds is not supported on Windows platformss2startupinfo is only supported on Windows platformsis4creationflags is only supported on Windows platformsswbsrUsrb(%s_cleanupsFalsesselfs_child_createds isinstancesbufsizesintslongs TypeErrors mswindowss preexec_fnsNones ValueErrors close_fdss startupinfos creationflagssstdinsstdoutsstderrspids returncodesuniversal_newliness _get_handlessp2creadsp2cwritesc2preadsc2pwriteserrreadserrwrites_execute_childsargss executablescwdsenvsshellsossfdopen(sselfsargssbufsizes executablesstdinsstdoutsstderrs preexec_fns close_fdssshellscwdsenvsuniversal_newliness startupinfos creationflagsserrreadsc2preadserrwritesc2pwritesp2creadsp2cwrite((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys__init__gsH          '   cCs,|iddƒ}|iddƒ}|SdS(Ns s s (sdatasreplace(sselfsdata((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys_translate_newlines™scCsX|i odSn|idtiƒ|itjo ttj oti|ƒndS(Ns _deadstate( sselfs_child_createdspollssyssmaxints returncodesNones_activesappend(sself((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys__del__s  cCsÍ|i|i|igitƒdjo”t}t}|io,|o|ii|ƒn|iiƒn;|io|ii ƒ}n|io|ii ƒ}n|i ƒ||fSn|i |ƒSdS(Ni( sselfsstdinsstdoutsstderrscountsNonesinputswritesclosesreadswaits _communicate(sselfsinputsstderrsstdout((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys communicate£s(    c Cs |tjo|tjo |tjottttttfSnttf\}}ttf\} }ttf\}}|tjot t ƒ}n}|t jo7t tdƒ\}}|iƒ}ti|dƒ}n9t|tƒoti|ƒ}nti|iƒƒ}|i|ƒ}|tjot tƒ}n}|t jo7t tdƒ\} }| iƒ} ti| dƒ} n9t|tƒoti|ƒ}nti|iƒƒ}|i|ƒ}|tjot tƒ}n”|t jo7t tdƒ\}}|iƒ}ti|dƒ}nP|tjo |}n9t|tƒoti|ƒ}nti|iƒƒ}|i|ƒ}||| |||fSdS(Ni(sstdinsNonesstdoutsstderrsp2creadsp2cwritesc2preadsc2pwriteserrreadserrwrites GetStdHandlesSTD_INPUT_HANDLEsPIPEs CreatePipesDetachsmsvcrtsopen_osfhandles isinstancesints get_osfhandlesfilenosselfs_make_inheritablesSTD_OUTPUT_HANDLEsSTD_ERROR_HANDLEsSTDOUT( sselfsstdinsstdoutsstderrserrreadsp2creadsp2cwriteserrwritesc2pwritesc2pread((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys _get_handles³sL'           cCs#ttƒ|tƒddtƒSdS(Nii(sDuplicateHandlesGetCurrentProcessshandlesDUPLICATE_SAME_ACCESS(sselfshandle((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys_make_inheritableÞscCstiitiitdƒƒdƒ}tii|ƒ oLtiitiitiƒdƒ}tii|ƒ ot dƒ‚q‡n|SdS(Nis w9xpopen.exesZCannot locate w9xpopen.exe, which is needed for Popen to work with your shell or platform.( sosspathsjoinsdirnamesGetModuleFileNamesw9xpopensexistsssyss exec_prefixs RuntimeError(sselfsw9xpopen((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys_find_w9xpopenàs '$c Csùt|tiƒ ot|ƒ}n|tjo tƒ}nt| ||fjo.|i t O_ | |_ ||_||_n| o˜|i tO_ t|_tiiddƒ}|d|}tƒdjptii|ƒiƒdjo*|iƒ}d||f}| t O} q!ny4t!||ttd| |||ƒ \}}}}Wn't)i*j o}t,|iŒ‚nXt-|_.||_/||_'|i0ƒ| tj o| i0ƒn|tj o|i0ƒn|tj o|i0ƒndS(NsCOMSPECscmd.exes /c ls command.coms"%s" %si(1s isinstancesargsstypess StringTypess list2cmdlines startupinfosNones STARTUPINFOsp2creadsc2pwriteserrwritesdwFlagssSTARTF_USESTDHANDLESs hStdInputs hStdOutputs hStdErrorsshellsSTARTF_USESHOWWINDOWsSW_HIDEs wShowWindowsossenvironsgetscomspecs GetVersionspathsbasenameslowersselfs_find_w9xpopensw9xpopens creationflagssCREATE_NEW_CONSOLEs CreateProcesss executablesenvscwdshpshtspidstids pywintypesserrorses WindowsErrorsTrues_child_createds_handlesClose(sselfsargss executables preexec_fns close_fdsscwdsenvsuniversal_newliness startupinfos creationflagssshellsp2creadsp2cwritesc2preadsc2pwriteserrreadserrwritespidscomspecstidshpshtsesw9xpopen((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys_execute_childésL      /         cCsN|itjo3t|idƒtjot|iƒ|_qCn|iSdS(Ni(sselfs returncodesNonesWaitForSingleObjects_handles WAIT_OBJECT_0sGetExitCodeProcess(sselfs _deadstate((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pyspollscCsC|itjo(t|itƒ}t|iƒ|_n|iSdS(N(sselfs returncodesNonesWaitForSingleObjects_handlesINFINITEsobjsGetExitCodeProcess(sselfsobj((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pyswaitscCs|i|iƒƒdS(N(sbuffersappendsfhsread(sselfsfhsbuffer((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys _readerthread!scCs¶t}t}|ioEg}tid|id|i|fƒ}|it ƒ|i ƒn|ioEg}tid|id|i|fƒ}|it ƒ|i ƒn|i o2|tj o|i i|ƒn|i iƒn|io|iƒn|io|iƒn|tj o|d}n|tj o|d}n|io ttdƒo8|o|i|ƒ}n|o|i|ƒ}qžn|iƒ||fSdS(Nstargetsargsisnewlines(sNonesstdoutsstderrsselfs threadingsThreads _readerthreads stdout_threads setDaemonsTruesstarts stderr_threadsstdinsinputswritesclosesjoinsuniversal_newlinesshasattrsfiles_translate_newlinesswait(sselfsinputsstdoutsstderrs stdout_threads stderr_thread((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys _communicate#s> $  $        c Csuttf\}}ttf\} }ttf\}}|tjonJ|tjot i ƒ\}}n't |t ƒo |}n |i ƒ}|tjonJ|tjot i ƒ\} }n't |t ƒo |}n |i ƒ}|tjona|tjot i ƒ\}}n>|tjo |}n't |t ƒo |}n |i ƒ}||| |||fSdS(N(sNonesp2creadsp2cwritesc2preadsc2pwriteserrreadserrwritesstdinsPIPEsosspipes isinstancesintsfilenosstdoutsstderrsSTDOUT( sselfsstdinsstdoutsstderrserrreadsp2creadsp2cwriteserrwritesc2pwritesc2pread((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys _get_handlesDs6              cCs\y ti}Wntj o d}nXti|tiƒ}ti|ti||BƒdS(Ni(sfcntls FD_CLOEXECs cloexec_flagsAttributeErrorsfdsF_GETFDsoldsF_SETFD(sselfsfdsolds cloexec_flag((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys_set_cloexec_flaghs   cCsMxFtdtƒD]5}||joqnyti|ƒWqqXqWdS(Ni(sxrangesMAXFDsisbutsossclose(sselfsbutsi((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys _close_fdsps cCsŒt|tiƒo |g}n t|ƒ}| oddg|}n|tjo|d}nti ƒ\}}|i |ƒtiƒ|_t|_|idjoy­| oti| ƒn| oti| ƒn|oti|ƒnti|ƒ| oti| dƒn|oti|dƒn|oti|dƒn| o | dfjoti| ƒn|o|| dfjoti|ƒn|o|| |dfjoti|ƒn|o|id|ƒn|tj oti|ƒn|ot|ƒn|tjoti!||ƒnti"|||ƒWn\t#i$ƒ\}}}t(i)|||ƒ}di+|ƒ|_,ti-|t.i/|ƒƒnXti0dƒnti|ƒ| o| oti| ƒn|o| oti|ƒn|o|oti|ƒnti1|d ƒ}ti|ƒ|djo,ti3|idƒt.i4|ƒ}|‚ndS( Ns/bin/shs-ciiisbutsiÿi(6s isinstancesargsstypess StringTypesslistsshells executablesNonesosspipes errpipe_reads errpipe_writesselfs_set_cloexec_flagsforkspidsTrues_child_createdsp2cwritesclosesc2preadserrreadsp2creadsdup2sc2pwriteserrwrites close_fdss _close_fdsscwdschdirs preexec_fnsapplysenvsexecvpsexecvpessyssexc_infosexc_types exc_valuestbs tracebacksformat_exceptions exc_linessjoinschild_tracebackswritespicklesdumpss_exitsreadsdataswaitpidsloadsschild_exception(sselfsargss executables preexec_fns close_fdsscwdsenvsuniversal_newliness startupinfos creationflagssshellsp2creadsp2cwritesc2preadsc2pwriteserrreadserrwrites exc_linesschild_exceptions errpipe_writesexc_typesdatas errpipe_readstbs exc_value((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys_execute_childxsx           cCs]ti|ƒoti|ƒ |_n3ti|ƒoti|ƒ|_n tdƒ‚dS(NsUnknown child exit status!( soss WIFSIGNALEDsstssWTERMSIGsselfs returncodes WIFEXITEDs WEXITSTATUSs RuntimeError(sselfssts((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys_handle_exitstatus¼s cCs•|itjozyCti|itiƒ\}}||ijo|i|ƒnWqŠti j o!|tj o ||_q†qŠXn|iSdS(N( sselfs returncodesNonesosswaitpidspidsWNOHANGsstss_handle_exitstatusserrors _deadstate(sselfs _deadstatespidssts((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pyspollÃs cCsG|itjo,ti|idƒ\}}|i|ƒn|iSdS(Ni(sselfs returncodesNonesosswaitpidspidsstss_handle_exitstatus(sselfspidssts((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pyswaitÍsc Cs»g}g}t}t} |io9|iiƒ|o|i |iƒq[|ii ƒn|io|i |iƒg}n|io|i |iƒg} nxk|p|o\t i ||gƒ\}} }|i| joVti|iiƒ|d ƒ}||}| o!|ii ƒ|i|iƒq8n|i|joZti|iiƒdƒ}|djo!|ii ƒ|i|iƒn|i |ƒn|i|joZti|iiƒdƒ}|djo!|ii ƒ|i|iƒn| i |ƒq¦q¦W|tj odi|ƒ}n| tj odi| ƒ} n|io ttdƒo8|o|i|ƒ}n| o|i| ƒ} q£n|iƒ|| fSdS(Niissnewlines(sread_sets write_setsNonesstdoutsstderrsselfsstdinsflushsinputsappendsclosesselectsrlistswlistsxlistsosswritesfilenos bytes_writtensremovesreadsdatasjoinsuniversal_newlinesshasattrsfiles_translate_newlinesswait( sselfsinputsrlistsxlistsstdouts write_setsdatas bytes_writtensread_setsstderrswlist((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys _communicateÒs^               (s__name__s __module__sNonesFalses__init__s_translate_newliness__del__s communicates mswindowss _get_handless_make_inheritables_find_w9xpopens_execute_childspollswaits _readerthreads _communicates_set_cloexec_flags _close_fdss_handle_exitstatus(((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pysPopenfs*02    +  .    ! $   D  ( ssyssplatforms mswindowssosstypess tracebacks ExceptionsCalledProcessErrors threadingsmsvcrts _subprocesss STARTUPINFOs pywintypessselectserrnosfcntlspickles__all__ssysconfsMAXFDsFalses NameErrorsTrues_actives_cleanupsPIPEsSTDOUTscalls check_calls list2cmdlinesobjectsPopen(sSTDOUTsmsvcrtsselectsPIPEs__all__serrnos mswindowss_cleanupscallsCalledProcessErrorsTruesfcntls STARTUPINFOsPopenssyss check_calls pywintypesstypessFalsesoss_actives tracebacks list2cmdlines threadingsMAXFDspickle((sL/mnt/gmirror/ports/audio/ruby-xmms2/work/xmms2-0.2DrJekyll/wafadmin/pproc.pys?sD