filemerge: add config item for GUI tools
authorMatt Mackall <mpm@selenic.com>
Sun, 03 Feb 2008 19:29:05 -0600
changeset 6007 090b1a665901
parent 6006 3c9dbb743d20
child 6008 33bfedc0be4a
filemerge: add config item for GUI tools <tool>.gui indicates whether a tool requires a GUI to run
mercurial/filemerge.py
mercurial/util.py
--- a/mercurial/filemerge.py	Sun Feb 03 19:29:05 2008 -0600
+++ b/mercurial/filemerge.py	Sun Feb 03 19:29:05 2008 -0600
@@ -36,6 +36,8 @@
             ui.warn(_("tool %s can't handle symlinks\n") % tmsg)
         elif binary and not _toolbool(ui, tool, "binary"):
             ui.warn(_("tool %s can't handle binary\n") % tmsg)
+        elif not util.gui() and _toolbool(ui, tool, "gui"):
+            ui.warn(_("tool %s requires a GUI\n") % tmsg)
         else:
             return True
         return False
--- a/mercurial/util.py	Sun Feb 03 19:29:05 2008 -0600
+++ b/mercurial/util.py	Sun Feb 03 19:29:05 2008 -0600
@@ -895,6 +895,10 @@
     function if need.'''
     return path.split(os.sep)
 
+def gui():
+    '''Are we running in a GUI?'''
+    return os.name == "nt" or os.name == "mac" or os.environ.get("DISPLAY")
+
 # Platform specific variants
 if os.name == 'nt':
     import msvcrt