Message 174628 - Python tracker
I'm with Chris. The information should be stored in the os module. I suggest os.shell var or os.get_shell() function like this:
def get_shell():
for path in confstr("CS_PATH").split(pathsep):
sh = sep.join((path, "sh"))
try:
mode = stat(sh).st_mode
except OSError:
pass
else:
if st.S_ISREG(mode):
return sh
raise FileNotFound("sh")
According to all examples S_ISREG() is sufficient here.
On Windows the function should use the env var COMSPEC instead of hard coding "cmd.exe".