ipy_workdir.py
33 lines
| 804 B
| text/x-python
|
PythonLexer
vivainio
|
r814 | #!/usr/bin/env python | ||
import IPython.ipapi | ||||
ip = IPython.ipapi.get() | ||||
vivainio
|
r815 | import os, subprocess | ||
vivainio
|
r814 | |||
workdir = None | ||||
def workdir_f(line): | ||||
global workdir | ||||
dummy,cmd = line.split(None,1) | ||||
if os.path.isdir(cmd): | ||||
workdir = cmd | ||||
print "Set workdir",workdir | ||||
elif workdir is None: | ||||
print "Please set workdir first by doing e.g. 'workdir q:/'" | ||||
else: | ||||
vivainio
|
r817 | sp = cmd.split(None,1) | ||
if len(sp) == 1: | ||||
head, tail = cmd, '' | ||||
else: | ||||
head, tail = sp | ||||
if os.path.isfile(head): | ||||
cmd = os.path.abspath(head) + ' ' + tail | ||||
print "Execute command",cmd,"in",workdir | ||||
vivainio
|
r815 | ret = subprocess.call(cmd, shell = True, cwd = workdir) | ||
vivainio
|
r814 | |||
ip.defalias("workdir",workdir_f) | ||||