comparison 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
comparison
equal deleted inserted replaced
206:3295b6b508de 207:ec327cf0d3a9
1 # ui.py - user interface bits for mercurial
2 #
3 # Copyright 2005 Matt Mackall <mpm@selenic.com>
4 #
5 # This software may be used and distributed according to the terms
6 # of the GNU General Public License, incorporated herein by reference.
7
8 import os, tempfile, sys, re
9
10 class ui:
11 def __init__(self, verbose=False, debug=False, quiet=False,
12 interactive=True):
13 self.quiet = quiet and not verbose and not debug
14 self.verbose = verbose or debug
15 self.debugflag = debug
16 self.interactive = interactive
17 def write(self, *args):
18 for a in args:
19 sys.stdout.write(str(a))
20 def readline(self):
21 return sys.stdin.readline()[:-1]
22 def prompt(self, msg, pat, default = "y"):
23 if not self.interactive: return default
24 while 1:
25 self.write(msg, " ")
26 r = self.readline()
27 if re.match(pat, r):
28 return r
29 else:
30 self.write("unrecognized response\n")
31 def status(self, *msg):
32 if not self.quiet: self.write(*msg)
33 def warn(self, msg):
34 self.write(*msg)
35 def note(self, *msg):
36 if self.verbose: self.write(*msg)
37 def debug(self, *msg):
38 if self.debugflag: self.write(*msg)
39 def edit(self, text):
40 (fd, name) = tempfile.mkstemp("hg")
41 f = os.fdopen(fd, "w")
42 f.write(text)
43 f.close()
44
45 editor = os.environ.get("HGEDITOR") or os.environ.get("EDITOR", "vi")
46 r = os.system("%s %s" % (editor, name))
47
48 if r:
49 raise "Edit failed!"
50
51 t = open(name).read()
52 t = re.sub("(?m)^HG:.*\n", "", t)
53
54 return t
55