ipy_p4.py
47 lines
| 1.3 KiB
| text/x-python
|
PythonLexer
vivainio
|
r524 | # -*- coding: utf-8 -*- | ||
""" | ||||
Add %p4 magic for pythonic p4 (Perforce) usage. | ||||
""" | ||||
Brian Granger
|
r2027 | from IPython.core import ipapi | ||
ip = ipapi.get() | ||||
vivainio
|
r524 | |||
import os,sys,marshal | ||||
import ipy_stock_completers | ||||
def p4_f(self, parameter_s=''): | ||||
cmd = 'p4 -G ' + parameter_s | ||||
vivainio
|
r526 | fobj = os.popen(cmd) | ||
out = [] | ||||
while 1: | ||||
try: | ||||
out.append(marshal.load(fobj)) | ||||
except EOFError: | ||||
break | ||||
return out | ||||
vivainio
|
r524 | |||
vivainio
|
r630 | def p4d(fname): | ||
return os.popen('p4 where ' + fname).read().split()[0] | ||||
Brian Granger
|
r2205 | ip.push("p4d") | ||
vivainio
|
r630 | |||
Brian Granger
|
r2205 | ip.define_magic('p4', p4_f) | ||
vivainio
|
r524 | |||
p4_commands = """\ | ||||
add admin annotate branch branches change changes changelist | ||||
changelists client clients counter counters delete depot depots | ||||
describe diff diff2 dirs edit filelog files fix fixes flush fstat | ||||
group groups have help info integrate integrated job jobs jobspec | ||||
label labels labelsync lock logger login logout monitor obliterate | ||||
opened passwd print protect rename reopen resolve resolved revert | ||||
review reviews set submit sync tag tickets triggers typemap unlock | ||||
user users verify workspace workspaces where""" | ||||
def p4_completer(self,event): | ||||
return ipy_stock_completers.vcs_completer(p4_commands, event) | ||||
ip.set_hook('complete_command', p4_completer, str_key = '%p4') | ||||
vivainio
|
r526 | ip.set_hook('complete_command', p4_completer, str_key = 'p4') | ||
vivainio
|
r524 | |||