filemerge: add config item for GUI tools
<tool>.gui indicates whether a tool requires a GUI to run
--- 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