comparison mercurial/ui.py @ 2281:7761597b5da3

prompt user for http authentication info in interactive mode, mercurial now asks the user for the username and password when the server requires it. the previous behavior was to fail with an http 401. based on patch from eric jaffe <jaffe.eric@gmail.com>.
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Sun, 14 May 2006 17:37:17 -0700
parents c74e91e81f70
children 9f745d3675d4
comparison
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):