# HG changeset patch # User Matt Mackall # Date 1240782644 18000 # Node ID 32a2a1e244f183298c1195c90c65a7a1d23dcee6 # Parent dd8d5be57d65ef03ebc7348b0e14aa8518685983 ui: make interactive a method diff -r dd8d5be57d65 -r 32a2a1e244f1 hgext/patchbomb.py --- a/hgext/patchbomb.py Sun Apr 26 16:50:44 2009 -0500 +++ b/hgext/patchbomb.py Sun Apr 26 16:50:44 2009 -0500 @@ -76,7 +76,7 @@ from mercurial.node import bin def prompt(ui, prompt, default=None, rest=': ', empty_ok=False): - if not ui.interactive: + if not ui.interactive(): return default if default: prompt += ' [%s]' % default diff -r dd8d5be57d65 -r 32a2a1e244f1 hgext/record.py --- a/hgext/record.py Sun Apr 26 16:50:44 2009 -0500 +++ b/hgext/record.py Sun Apr 26 16:50:44 2009 -0500 @@ -394,7 +394,7 @@ def dorecord(ui, repo, committer, *pats, **opts): - if not ui.interactive: + if not ui.interactive(): raise util.Abort(_('running non-interactively, use commit instead')) def recordfunc(ui, repo, message, match, opts): diff -r dd8d5be57d65 -r 32a2a1e244f1 mercurial/ui.py --- a/mercurial/ui.py Sun Apr 26 16:50:44 2009 -0500 +++ b/mercurial/ui.py Sun Apr 26 16:50:44 2009 -0500 @@ -16,7 +16,7 @@ def __init__(self, src=None): self._buffers = [] self.quiet = self.verbose = self.debugflag = self._traceback = False - self.interactive = self._reportuntrusted = True + self._reportuntrusted = True self._ocfg = config.config() # overlay self._tcfg = config.config() # trusted self._ucfg = config.config() # untrusted @@ -37,18 +37,6 @@ def copy(self): return ui(self) - _isatty = None - def isatty(self): - if ui._isatty is None: - try: - ui._isatty = sys.stdin.isatty() - except AttributeError: # not a real file object - ui._isatty = False - except IOError: - # access to stdin is unsafe in a WSGI environment - ui._isatty = False - return ui._isatty - def _is_trusted(self, fp, f): st = util.fstat(fp) if util.isowner(fp, st): @@ -112,7 +100,6 @@ if self.verbose and self.quiet: self.quiet = self.verbose = False self._reportuntrusted = self.configbool("ui", "report_untrusted", True) - self.interactive = self.configbool("ui", "interactive", self.isatty()) self._traceback = self.configbool('ui', 'traceback', False) # update trust information @@ -259,8 +246,11 @@ try: sys.stderr.flush() except: pass + def interactive(self): + return self.configbool("ui", "interactive") or sys.stdin.isatty() + def _readline(self, prompt=''): - if self.isatty(): + if sys.stdin.isatty(): try: # magically add command line editing support, where # available @@ -282,7 +272,7 @@ If not interactive -- the default is returned """ - if not self.interactive: + if not self.interactive(): self.note(msg, ' ', default, "\n") return default while True: @@ -298,7 +288,7 @@ raise util.Abort(_('response expected')) def getpass(self, prompt=None, default=None): - if not self.interactive: return default + if not self.interactive(): return default try: return getpass.getpass(prompt or _('password: ')) except EOFError: diff -r dd8d5be57d65 -r 32a2a1e244f1 mercurial/url.py --- a/mercurial/url.py Sun Apr 26 16:50:44 2009 -0500 +++ b/mercurial/url.py Sun Apr 26 16:50:44 2009 -0500 @@ -107,7 +107,7 @@ if user and passwd: return (user, passwd) - if not self.ui.interactive: + if not self.ui.interactive(): raise util.Abort(_('http authorization required')) self.ui.write(_("http authorization required\n"))