Commits

Lars Yencken committed 6327ca1

Adds a check that graphviz is installed.

Comments (0)

Files changed (1)

 # -*- coding: utf-8 -*-
 #
 #  vis_graph.py
-#  lars
+#  vis-graph
 #
 #  Created by Lars Yencken on 2010-09-29.
 #  Copyright 2010 NICTA. All rights reserved.
     return graph, tokens
 
 def _display_tokens(tokens):
+    "Print numbered tokens in order to stdout."
     for i, token_data in enumerate(tokens):
         token = token_data.split('|')[0]
         print '%s_%s' % (token, shellColor.color(str(i), 'blue')),
     print
     print '-----'
 
+def _can_run_executable(name):
+    "Checks if the required executable exists."
+    p = subprocess.Popen(['which', name], stdout=open('/dev/null', 'w'))
+    retval = p.wait()
+    return retval == 0
+
 #----------------------------------------------------------------------------#
 
 def _create_option_parser():
     parser = _create_option_parser()
     (options, args) = parser.parse_args(argv)
 
+    if not _can_run_executable('dot'):
+        print >> sys.stderr, "Can't find 'dot' executable, please install graphviz or check your PATH."
+        sys.exit(1)
+
     if len(args) != 1:
         parser.print_help()
         sys.exit(1)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.