2015-08-08 02:11:30 +00:00
<!DOCTYPE html>
<!-- [if IE 8]><html class="no - js lt - ie9" lang="en" > <![endif] -->
<!-- [if gt IE 8]><! --> < html class = "no-js" lang = "en" > <!-- <![endif] -->
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< title > terminatorlib.cwd — terminatorlib 0.98 documentation< / title >
< link rel = "stylesheet" href = "../../_static/css/theme.css" type = "text/css" / >
< link rel = "top" title = "terminatorlib 0.98 documentation" href = "../../index.html" / >
< link rel = "up" title = "Module code" href = "../index.html" / >
< script src = "_static/js/modernizr.min.js" > < / script >
< / head >
< body class = "wy-body-for-nav" role = "document" >
< div class = "wy-grid-for-nav" >
< nav data-toggle = "wy-nav-shift" class = "wy-nav-side" >
< div class = "wy-side-nav-search" >
< a href = "../../index.html" class = "icon icon-home" > terminatorlib
< / a >
< div role = "search" >
< form id = "rtd-search-form" class = "wy-form" action = "../../search.html" method = "get" >
< input type = "text" name = "q" placeholder = "Search docs" / >
< input type = "hidden" name = "check_keywords" value = "yes" / >
< input type = "hidden" name = "area" value = "default" / >
< / form >
< / div >
< / div >
< div class = "wy-menu wy-menu-vertical" data-spy = "affix" role = "navigation" aria-label = "main navigation" >
< ul >
< li class = "toctree-l1" > < a class = "reference internal" href = "../../terminatorlib.html" > terminatorlib package< / a > < ul >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#subpackages" > Subpackages< / a > < ul >
< li class = "toctree-l3" > < a class = "reference internal" href = "../../terminatorlib.configobj.html" > terminatorlib.configobj package< / a > < ul >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.configobj.html#submodules" > Submodules< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.configobj.html#module-terminatorlib.configobj.configobj" > terminatorlib.configobj.configobj module< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.configobj.html#module-terminatorlib.configobj.validate" > terminatorlib.configobj.validate module< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.configobj.html#module-terminatorlib.configobj" > Module contents< / a > < / li >
< / ul >
< / li >
< li class = "toctree-l3" > < a class = "reference internal" href = "../../terminatorlib.plugins.html" > terminatorlib.plugins package< / a > < ul >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.plugins.html#submodules" > Submodules< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.plugins.html#module-terminatorlib.plugins.activitywatch" > terminatorlib.plugins.activitywatch module< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.plugins.html#module-terminatorlib.plugins.custom_commands" > terminatorlib.plugins.custom_commands module< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.plugins.html#module-terminatorlib.plugins.logger" > terminatorlib.plugins.logger module< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.plugins.html#module-terminatorlib.plugins.maven" > terminatorlib.plugins.maven module< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.plugins.html#module-terminatorlib.plugins.terminalshot" > terminatorlib.plugins.terminalshot module< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.plugins.html#module-terminatorlib.plugins.testplugin" > terminatorlib.plugins.testplugin module< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.plugins.html#module-terminatorlib.plugins.url_handlers" > terminatorlib.plugins.url_handlers module< / a > < / li >
< li class = "toctree-l4" > < a class = "reference internal" href = "../../terminatorlib.plugins.html#module-terminatorlib.plugins" > Module contents< / a > < / li >
< / ul >
< / li >
< / ul >
< / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#submodules" > Submodules< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.borg" > terminatorlib.borg module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.config" > terminatorlib.config module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.container" > terminatorlib.container module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.cwd" > terminatorlib.cwd module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.debugserver" > terminatorlib.debugserver module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.editablelabel" > terminatorlib.editablelabel module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.encoding" > terminatorlib.encoding module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.factory" > terminatorlib.factory module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.freebsd" > terminatorlib.freebsd module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.ipc" > terminatorlib.ipc module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.keybindings" > terminatorlib.keybindings module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.layoutlauncher" > terminatorlib.layoutlauncher module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.notebook" > terminatorlib.notebook module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.optionparse" > terminatorlib.optionparse module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.paned" > terminatorlib.paned module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.plugin" > terminatorlib.plugin module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.prefseditor" > terminatorlib.prefseditor module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.searchbar" > terminatorlib.searchbar module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.signalman" > terminatorlib.signalman module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.terminal" > terminatorlib.terminal module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.terminal_popup_menu" > terminatorlib.terminal_popup_menu module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.terminator" > terminatorlib.terminator module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.titlebar" > terminatorlib.titlebar module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.translation" > terminatorlib.translation module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.util" > terminatorlib.util module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.version" > terminatorlib.version module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib.window" > terminatorlib.window module< / a > < / li >
< li class = "toctree-l2" > < a class = "reference internal" href = "../../terminatorlib.html#module-terminatorlib" > Module contents< / a > < / li >
< / ul >
< / li >
< / ul >
< / div >
< / nav >
< section data-toggle = "wy-nav-shift" class = "wy-nav-content-wrap" >
< nav class = "wy-nav-top" role = "navigation" aria-label = "top navigation" >
< i data-toggle = "wy-nav-top" class = "fa fa-bars" > < / i >
< a href = "../../index.html" > terminatorlib< / a >
< / nav >
< div class = "wy-nav-content" >
< div class = "rst-content" >
< div role = "navigation" aria-label = "breadcrumbs navigation" >
< ul class = "wy-breadcrumbs" >
< li > < a href = "../../index.html" > Docs< / a > » < / li >
< li > < a href = "../index.html" > Module code< / a > » < / li >
< li > terminatorlib.cwd< / li >
< li class = "wy-breadcrumbs-aside" >
< / li >
< / ul >
< hr / >
< / div >
< div role = "main" class = "document" >
< h1 > Source code for terminatorlib.cwd< / h1 > < div class = "highlight" > < pre >
< span class = "c" > #!/usr/bin/python< / span >
< span class = "c" > # Terminator by Chris Jones < cmsj@tenshu.net> < / span >
< span class = "c" > # GPL v2 only< / span >
< span class = "sd" > " " " cwd.py - function necessary to get the cwd for a given pid on various OSes< / span >
< span class = "sd" > > > > cwd = get_default_cwd()< / span >
< span class = "sd" > > > > cwd.__class__.__name__< / span >
< span class = "sd" > ' str' < / span >
< span class = "sd" > > > > func = get_pid_cwd()< / span >
< span class = "sd" > > > > func.__class__.__name__< / span >
< span class = "sd" > ' function' < / span >
< span class = "sd" > " " " < / span >
< span class = "kn" > import< / span > < span class = "nn" > platform< / span >
< span class = "kn" > import< / span > < span class = "nn" > os< / span >
< span class = "kn" > import< / span > < span class = "nn" > pwd< / span >
< span class = "kn" > from< / span > < span class = "nn" > util< / span > < span class = "kn" > import< / span > < span class = "n" > dbg< / span > < span class = "p" > ,< / span > < span class = "n" > err< / span >
2015-08-26 18:04:39 +00:00
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "kn" > import< / span > < span class = "nn" > psutil< / span >
< span class = "n" > psutil_avail< / span > < span class = "o" > =< / span > < span class = "bp" > True< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > ImportError< / span > < span class = "p" > ):< / span >
< span class = "n" > dbg< / span > < span class = "p" > (< / span > < span class = "s" > ' psutil not found' < / span > < span class = "p" > )< / span >
< span class = "n" > psutil_avail< / span > < span class = "o" > =< / span > < span class = "bp" > False< / span >
2015-08-08 02:11:30 +00:00
< div class = "viewcode-block" id = "get_default_cwd" > < a class = "viewcode-back" href = "../../terminatorlib.html#terminatorlib.cwd.get_default_cwd" > [docs]< / a > < span class = "k" > def< / span > < span class = "nf" > get_default_cwd< / span > < span class = "p" > ():< / span >
< span class = "sd" > " " " Determine a reasonable default cwd" " " < / span >
< span class = "n" > cwd< / span > < span class = "o" > =< / span > < span class = "n" > os< / span > < span class = "o" > .< / span > < span class = "n" > getcwd< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > os< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > exists< / span > < span class = "p" > (< / span > < span class = "n" > cwd< / span > < span class = "p" > )< / span > < span class = "ow" > or< / span > < span class = "ow" > not< / span > < span class = "n" > os< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > isdir< / span > < span class = "p" > (< / span > < span class = "n" > cwd< / span > < span class = "p" > ):< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > cwd< / span > < span class = "o" > =< / span > < span class = "n" > pwd< / span > < span class = "o" > .< / span > < span class = "n" > getpwuid< / span > < span class = "p" > (< / span > < span class = "n" > os< / span > < span class = "o" > .< / span > < span class = "n" > getuid< / span > < span class = "p" > ())[< / span > < span class = "mi" > 5< / span > < span class = "p" > ]< / span >
< span class = "k" > except< / span > < span class = "ne" > KeyError< / span > < span class = "p" > :< / span >
< span class = "n" > cwd< / span > < span class = "o" > =< / span > < span class = "s" > ' /' < / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "n" > cwd< / span > < span class = "p" > )< / span >
< / div >
< div class = "viewcode-block" id = "get_pid_cwd" > < a class = "viewcode-back" href = "../../terminatorlib.html#terminatorlib.cwd.get_pid_cwd" > [docs]< / a > < span class = "k" > def< / span > < span class = "nf" > get_pid_cwd< / span > < span class = "p" > ():< / span >
< span class = "sd" > " " " Determine an appropriate cwd function for the OS we are running on" " " < / span >
< span class = "n" > func< / span > < span class = "o" > =< / span > < span class = "k" > lambda< / span > < span class = "n" > pid< / span > < span class = "p" > :< / span > < span class = "bp" > None< / span >
< span class = "n" > system< / span > < span class = "o" > =< / span > < span class = "n" > platform< / span > < span class = "o" > .< / span > < span class = "n" > system< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "n" > system< / span > < span class = "o" > ==< / span > < span class = "s" > ' Linux' < / span > < span class = "p" > :< / span >
< span class = "n" > dbg< / span > < span class = "p" > (< / span > < span class = "s" > ' Using Linux get_pid_cwd' < / span > < span class = "p" > )< / span >
< span class = "n" > func< / span > < span class = "o" > =< / span > < span class = "n" > linux_get_pid_cwd< / span >
< span class = "k" > elif< / span > < span class = "n" > system< / span > < span class = "o" > ==< / span > < span class = "s" > ' FreeBSD' < / span > < span class = "p" > :< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "kn" > import< / span > < span class = "nn" > freebsd< / span >
< span class = "n" > func< / span > < span class = "o" > =< / span > < span class = "n" > freebsd< / span > < span class = "o" > .< / span > < span class = "n" > get_process_cwd< / span >
< span class = "n" > dbg< / span > < span class = "p" > (< / span > < span class = "s" > ' Using FreeBSD get_pid_cwd' < / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > OSError< / span > < span class = "p" > ,< / span > < span class = "ne" > NotImplementedError< / span > < span class = "p" > ,< / span > < span class = "ne" > ImportError< / span > < span class = "p" > ):< / span >
< span class = "n" > dbg< / span > < span class = "p" > (< / span > < span class = "s" > ' FreeBSD version too old for get_pid_cwd' < / span > < span class = "p" > )< / span >
< span class = "k" > elif< / span > < span class = "n" > system< / span > < span class = "o" > ==< / span > < span class = "s" > ' SunOS' < / span > < span class = "p" > :< / span >
< span class = "n" > dbg< / span > < span class = "p" > (< / span > < span class = "s" > ' Using SunOS get_pid_cwd' < / span > < span class = "p" > )< / span >
< span class = "n" > func< / span > < span class = "o" > =< / span > < span class = "n" > sunos_get_pid_cwd< / span >
2015-08-26 18:04:39 +00:00
< span class = "k" > elif< / span > < span class = "n" > psutil_avail< / span > < span class = "p" > :< / span >
< span class = "n" > func< / span > < span class = "o" > =< / span > < span class = "n" > psutil_cwd< / span >
2015-08-08 02:11:30 +00:00
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "n" > dbg< / span > < span class = "p" > (< / span > < span class = "s" > ' Unable to determine a get_pid_cwd for OS: < / span > < span class = "si" > %s< / span > < span class = "s" > ' < / span > < span class = "o" > %< / span > < span class = "n" > system< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "n" > func< / span > < span class = "p" > )< / span >
< / div >
< div class = "viewcode-block" id = "proc_get_pid_cwd" > < a class = "viewcode-back" href = "../../terminatorlib.html#terminatorlib.cwd.proc_get_pid_cwd" > [docs]< / a > < span class = "k" > def< / span > < span class = "nf" > proc_get_pid_cwd< / span > < span class = "p" > (< / span > < span class = "n" > pid< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ):< / span >
< span class = "sd" > " " " Extract the cwd of a PID from proc, given the PID and the /proc path to< / span >
< span class = "sd" > insert it into, e.g. /proc/%s/cwd" " " < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > cwd< / span > < span class = "o" > =< / span > < span class = "n" > os< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > realpath< / span > < span class = "p" > (< / span > < span class = "n" > path< / span > < span class = "o" > %< / span > < span class = "n" > pid< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "ne" > Exception< / span > < span class = "p" > ,< / span > < span class = "n" > ex< / span > < span class = "p" > :< / span >
< span class = "n" > err< / span > < span class = "p" > (< / span > < span class = "s" > ' Unable to get cwd for PID < / span > < span class = "si" > %s< / span > < span class = "s" > : < / span > < span class = "si" > %s< / span > < span class = "s" > ' < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "n" > pid< / span > < span class = "p" > ,< / span > < span class = "n" > ex< / span > < span class = "p" > ))< / span >
< span class = "n" > cwd< / span > < span class = "o" > =< / span > < span class = "s" > ' /' < / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "n" > cwd< / span > < span class = "p" > )< / span >
< / div >
< div class = "viewcode-block" id = "linux_get_pid_cwd" > < a class = "viewcode-back" href = "../../terminatorlib.html#terminatorlib.cwd.linux_get_pid_cwd" > [docs]< / a > < span class = "k" > def< / span > < span class = "nf" > linux_get_pid_cwd< / span > < span class = "p" > (< / span > < span class = "n" > pid< / span > < span class = "p" > ):< / span >
< span class = "sd" > " " " Determine the cwd for a given PID on Linux kernels" " " < / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "n" > proc_get_pid_cwd< / span > < span class = "p" > (< / span > < span class = "n" > pid< / span > < span class = "p" > ,< / span > < span class = "s" > ' /proc/< / span > < span class = "si" > %s< / span > < span class = "s" > /cwd' < / span > < span class = "p" > ))< / span >
< / div >
< div class = "viewcode-block" id = "sunos_get_pid_cwd" > < a class = "viewcode-back" href = "../../terminatorlib.html#terminatorlib.cwd.sunos_get_pid_cwd" > [docs]< / a > < span class = "k" > def< / span > < span class = "nf" > sunos_get_pid_cwd< / span > < span class = "p" > (< / span > < span class = "n" > pid< / span > < span class = "p" > ):< / span >
< span class = "sd" > " " " Determine the cwd for a given PID on SunOS kernels" " " < / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "n" > proc_get_pid_cwd< / span > < span class = "p" > (< / span > < span class = "n" > pid< / span > < span class = "p" > ,< / span > < span class = "s" > ' /proc/< / span > < span class = "si" > %s< / span > < span class = "s" > /path/cwd' < / span > < span class = "p" > ))< / span >
2015-08-26 18:04:39 +00:00
< / div >
< div class = "viewcode-block" id = "psutil_cwd" > < a class = "viewcode-back" href = "../../terminatorlib.html#terminatorlib.cwd.psutil_cwd" > [docs]< / a > < span class = "k" > def< / span > < span class = "nf" > psutil_cwd< / span > < span class = "p" > (< / span > < span class = "n" > pid< / span > < span class = "p" > ):< / span >
< span class = "sd" > " " " Determine the cwd using psutil which also supports Darwin" " " < / span >
< span class = "k" > return< / span > < span class = "n" > psutil< / span > < span class = "o" > .< / span > < span class = "n" > Process< / span > < span class = "p" > (< / span > < span class = "n" > pid< / span > < span class = "p" > )< / span > < span class = "o" > .< / span > < span class = "n" > as_dict< / span > < span class = "p" > ()[< / span > < span class = "s" > ' cwd' < / span > < span class = "p" > ]< / span >
2015-08-08 02:11:30 +00:00
< span class = "c" > # vim: set expandtab ts=4 sw=4:< / span > < / div >
< / pre > < / div >
< / div >
< footer >
< hr / >
< div role = "contentinfo" >
< p >
© Copyright 2015, Stephen Boddy, licensed under the CC-BY-SA..
< / p >
< / div >
Built with < a href = "http://sphinx-doc.org/" > Sphinx< / a > using a < a href = "https://github.com/snide/sphinx_rtd_theme" > theme< / a > provided by < a href = "https://readthedocs.org" > Read the Docs< / a > .
< / footer >
< / div >
< / div >
< / section >
< / div >
< script type = "text/javascript" >
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../../',
VERSION:'0.98',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true
};
< / script >
< script type = "text/javascript" src = "../../_static/jquery.js" > < / script >
< script type = "text/javascript" src = "../../_static/underscore.js" > < / script >
< script type = "text/javascript" src = "../../_static/doctools.js" > < / script >
< script type = "text/javascript" src = "../../_static/js/theme.js" > < / script >
< script type = "text/javascript" >
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
< / script >
< / body >
< / html >