mercurial/ui.py
changeset 2281 7761597b5da3
parent 2206 c74e91e81f70
child 2286 9f745d3675d4
equal deleted inserted replaced
2279:51bfa0fd3a33 2281:7761597b5da3
     6 # of the GNU General Public License, incorporated herein by reference.
     6 # of the GNU General Public License, incorporated herein by reference.
     7 
     7 
     8 import ConfigParser
     8 import ConfigParser
     9 from i18n import gettext as _
     9 from i18n import gettext as _
    10 from demandload import *
    10 from demandload import *
    11 demandload(globals(), "errno os re smtplib socket sys tempfile util")
    11 demandload(globals(), "errno getpass os re smtplib socket sys tempfile util")
    12 
    12 
    13 class ui(object):
    13 class ui(object):
    14     def __init__(self, verbose=False, debug=False, quiet=False,
    14     def __init__(self, verbose=False, debug=False, quiet=False,
    15                  interactive=True, traceback=False, parentui=None):
    15                  interactive=True, traceback=False, parentui=None):
    16         self.overlay = {}
    16         self.overlay = {}
   222         try: sys.stderr.flush()
   222         try: sys.stderr.flush()
   223         except: pass
   223         except: pass
   224 
   224 
   225     def readline(self):
   225     def readline(self):
   226         return sys.stdin.readline()[:-1]
   226         return sys.stdin.readline()[:-1]
   227     def prompt(self, msg, pat, default="y"):
   227     def prompt(self, msg, pat=None, default="y"):
   228         if not self.interactive: return default
   228         if not self.interactive: return default
   229         while 1:
   229         while 1:
   230             self.write(msg, " ")
   230             self.write(msg, " ")
   231             r = self.readline()
   231             r = self.readline()
   232             if re.match(pat, r):
   232             if not pat or re.match(pat, r):
   233                 return r
   233                 return r
   234             else:
   234             else:
   235                 self.write(_("unrecognized response\n"))
   235                 self.write(_("unrecognized response\n"))
       
   236     def getpass(self, prompt=None, default=None):
       
   237         if not self.interactive: return default
       
   238         return getpass.getpass(prompt or _('password: '))
   236     def status(self, *msg):
   239     def status(self, *msg):
   237         if not self.quiet: self.write(*msg)
   240         if not self.quiet: self.write(*msg)
   238     def warn(self, *msg):
   241     def warn(self, *msg):
   239         self.write_err(*msg)
   242         self.write_err(*msg)
   240     def note(self, *msg):
   243     def note(self, *msg):