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): |