Mercurial > hg
diff mercurial/ui.py @ 207:ec327cf0d3a9
Move ui class to its own module
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Move ui class to its own module
manifest hash: f75c8f9cdfe16f143ab633d0072c14ba88ac88be
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCnVxxywK+sNU5EO8RAgPgAJ48p7w4Do/saCC8WkBvHj/rdnoiEgCgrSs9
Wu1fOSgST3rn/2JpZAdFRdA=
=91tt
-----END PGP SIGNATURE-----
author | mpm@selenic.com |
---|---|
date | Tue, 31 May 2005 22:57:53 -0800 |
parents | |
children | 3427806d5ab9 4f802588cdfb afe895fcc0d0 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/ui.py Tue May 31 22:57:53 2005 -0800 @@ -0,0 +1,55 @@ +# ui.py - user interface bits for mercurial +# +# Copyright 2005 Matt Mackall <mpm@selenic.com> +# +# This software may be used and distributed according to the terms +# of the GNU General Public License, incorporated herein by reference. + +import os, tempfile, sys, re + +class ui: + def __init__(self, verbose=False, debug=False, quiet=False, + interactive=True): + self.quiet = quiet and not verbose and not debug + self.verbose = verbose or debug + self.debugflag = debug + self.interactive = interactive + def write(self, *args): + for a in args: + sys.stdout.write(str(a)) + def readline(self): + return sys.stdin.readline()[:-1] + def prompt(self, msg, pat, default = "y"): + if not self.interactive: return default + while 1: + self.write(msg, " ") + r = self.readline() + if re.match(pat, r): + return r + else: + self.write("unrecognized response\n") + def status(self, *msg): + if not self.quiet: self.write(*msg) + def warn(self, msg): + self.write(*msg) + def note(self, *msg): + if self.verbose: self.write(*msg) + def debug(self, *msg): + if self.debugflag: self.write(*msg) + def edit(self, text): + (fd, name) = tempfile.mkstemp("hg") + f = os.fdopen(fd, "w") + f.write(text) + f.close() + + editor = os.environ.get("HGEDITOR") or os.environ.get("EDITOR", "vi") + r = os.system("%s %s" % (editor, name)) + + if r: + raise "Edit failed!" + + t = open(name).read() + t = re.sub("(?m)^HG:.*\n", "", t) + + return t +