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
+