Mercurial > public > mercurial-scm > hg
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): |