File: ipy_workdir.py

package info (click to toggle)
ipython 0.13.1-2%2Bdeb7u1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 15,752 kB
  • sloc: python: 69,537; makefile: 355; lisp: 272; sh: 80; objc: 37
file content (41 lines) | stat: -rw-r--r-- 1,034 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
from IPython.core import ipapi
ip = ipapi.get()

import os, subprocess

workdir = None
def workdir_f(ip,line):
    """ Exceute commands residing in cwd elsewhere

    Example::

      workdir /myfiles
      cd bin
      workdir myscript.py

    executes myscript.py (stored in bin, but not in path) in /myfiles
    """
    global workdir
    dummy,cmd  = line.split(None,1)
    if os.path.isdir(cmd):
        workdir = os.path.abspath(cmd)
        print "Set workdir",workdir
    elif workdir is None:
        print "Please set workdir first by doing e.g. 'workdir q:/'"
    else:
        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
        olddir = os.getcwdu()
        os.chdir(workdir)
        try:
            os.system(cmd)
        finally:
            os.chdir(olddir)

ip.define_alias("workdir",workdir_f)