Added -v option to see verbose output.
[0publish.git] / edit.py
blob334d93655722616786ab64f5353723b8bb134e7d
1 import tempfile, os
3 def edit(data):
4 fd, tmp = tempfile.mkstemp(prefix = '0publish-')
5 try:
6 stream = os.fdopen(fd, 'w')
7 stream.write(data)
8 stream.close()
9 editor = os.environ.get('EDITOR', 'vi')
10 if os.spawnlp(os.P_WAIT, editor, editor, tmp):
11 raise Exception('Editing with $EDITOR ("%s") failed')
12 new_data = file(tmp).read()
13 finally:
14 os.unlink(tmp)
15 if new_data == data:
16 raise Exception('Data unchanged after edit. Aborting.')
17 return new_data