migrate cwd getting function

This commit is contained in:
Chris Jones 2009-08-11 23:36:37 +01:00
parent 7547eaad4b
commit f110bca103
1 changed files with 34 additions and 0 deletions

34
terminatorlib/cwd.py Executable file
View File

@ -0,0 +1,34 @@
#!/usr/bin/python
# Terminator by Chris Jones <cmsj@tenshu.net>
# GPL v2 only
"""cwd.py - function necessary to get the cwd for a given pid on various OSes"""
import platform
import os
from util import dbg
def get_pidcwd():
"""Determine an appropriate cwd function for the OS we are running on"""
func = lambda pid: None
system = platform.system()
if system == 'Linux':
dbg('Using Linux get_pid_cwd')
func = lambda pid: os.path.realpath('/proc/%s/cwd' % pid)
elif system == 'FreeBSD':
try:
import freebsd
func = freebsd.get_process_cwd
dbg('Using FreeBSD get_pid_cwd')
except (OSError, NotImplementedError, ImportError):
dbg('FreeBSD version too old for get_pid_cwd')
elif system == 'SunOS':
dbg('Using SunOS get_pid_cwd')
func = lambda pid: os.path.realpath('/proc/%s/path/cwd' % pid)
else:
dbg('Unable to determine a get_pid_cwd for OS: %s' % system)
return(func)
# vim: set expandtab ts=4 sw=4: