lJc @sdZdZddkZddkZddkZddkTddklZddddZd Z dddd Z dddd Z dddd Z dd ZdS(sdistutils.spawn Provides the 'spawn()' function, a front-end to various platform- specific functions for launching another program in a sub-process. Also provides the 'find_executable()' to search the path for a given executable name. s1$Id: spawn.py 37828 2004-11-10 22:23:15Z loewis $iN(t*(tlogiicCstidjot||d|n_tidjot||d|n8tidjot||d|ntdtidS(sRun another program, specified as a command list 'cmd', in a new process. 'cmd' is just the argument list for the new process, ie. cmd[0] is the program to run and cmd[1:] are the rest of its arguments. There is no way to run a program with a name different from that of its executable. If 'search_path' is true (the default), the system's executable search path will be used to find the program; otherwise, cmd[0] must be the exact path to the executable. If 'dry_run' is true, the command will not actually be run. Raise DistutilsExecError if running the program fails in any way; just return on success. tposixtdry_runtnttos2s1don't know how to spawn programs on platform '%s'N(tostnamet _spawn_posixt _spawn_ntt _spawn_os2tDistutilsPlatformError(tcmdt search_pathtverboseR((s"/sys/lib/python/distutils/spawn.pytspawnscCsTxMtt|D]9}ti||ddjod|||||D]6}tii ||}tii |o|SqqWdSn|SdS(sTry to find 'executable' in the directories listed in 'path' (a string listing directories separated by 'os.pathsep'; defaults to os.environ['PATH']). Returns the complete filename or None if not found. tPATHtwin32Rs.exeN( tNoneRtenvironRtsplittpathseptpathtsplitextR%tplatformRtisfileR(RR=tpathstbasetexttptf((s"/sys/lib/python/distutils/spawn.pyRs - (t__doc__t __revision__R%RRtdistutils.errorst distutilsRRRR R RR9R(((s"/sys/lib/python/distutils/spawn.pyss$$      ;