X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Futils.py;h=e5431c8bc63854337b0b0d9b518f58ff547bf2a5;hb=e09c0e047e13e48b9983df0e80c2b3096baeb49d;hp=3e299abc51709a4b4b3b3c308039068048195cc9;hpb=34853ea46fbd8c389cc8e2cc93ce449a3c277762;p=dak.git diff --git a/daklib/utils.py b/daklib/utils.py index 3e299abc..e5431c8b 100755 --- a/daklib/utils.py +++ b/daklib/utils.py @@ -1595,3 +1595,25 @@ def mail_addresses_for_upload(maintainer, changed_by, fingerprint): encoded_addresses = [ fix_maintainer(e)[1] for e in addresses ] return encoded_addresses + +################################################################################ + +def call_editor(text="", suffix=".txt"): + """Run editor and return the result as a string + + Kwargs: + text (str): initial text + suffix (str): extension for temporary file + + Returns: + string with the edited text + """ + editor = os.environ.get('VISUAL', os.environ.get('EDITOR', 'vi')) + tmp = tempfile.NamedTemporaryFile(suffix=suffix, delete=False) + try: + print >>tmp, text, + tmp.close() + subprocess.check_call([editor, tmp.name]) + return open(tmp.name, 'r').read() + finally: + os.unlink(tmp.name)