Index: dart_format.py |
diff --git a/dart_format.py b/dart_format.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..ee07efe2e3c8141dea679b1fbaa1ed0d9c9e530c |
--- /dev/null |
+++ b/dart_format.py |
@@ -0,0 +1,58 @@ |
+#!/usr/bin/python |
+# Copyright 2015 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+"""Redirects to the version of dartfmt checked into a gclient repo. |
+ |
+dartfmt binaries are pulled down during gclient sync in the mojo repo. |
+ |
+This tool is named dart_format.py instead of dartfmt to parallel |
+clang_format.py, which is in this same repository.""" |
+ |
+import os |
+import subprocess |
+import sys |
+ |
+import gclient_utils |
+ |
+class NotFoundError(Exception): |
+ """A file could not be found.""" |
+ def __init__(self, e): |
+ Exception.__init__(self, |
+ 'Problem while looking for dartfmt in Chromium source tree:\n' |
+ ' %s' % e) |
+ |
+ |
+def FindDartFmtToolInChromiumTree(): |
+ """Return a path to the dartfmt executable, or die trying.""" |
+ primary_solution_path = gclient_utils.GetPrimarySolutionPath() |
+ if not primary_solution_path: |
+ raise NotFoundError( |
+ 'Could not find checkout in any parent of the current path.') |
+ |
+ dartfmt_path = os.path.join(primary_solution_path, 'third_party', 'dart-sdk', |
+ 'dart-sdk', 'bin', 'dartfmt') |
+ if not os.path.exists(dartfmt_path): |
+ raise NotFoundError('File does not exist: %s' % dartfmt_path) |
+ return dartfmt_path |
+ |
+ |
+def main(args): |
+ try: |
+ tool = FindDartFmtToolInChromiumTree() |
+ except NotFoundError, e: |
+ print >> sys.stderr, e |
+ sys.exit(1) |
+ |
+ # Add some visibility to --help showing where the tool lives, since this |
+ # redirection can be a little opaque. |
+ help_syntax = ('-h', '--help', '-help', '-help-list', '--help-list') |
+ if any(match in args for match in help_syntax): |
+ print '\nDepot tools redirects you to the dartfmt at:\n %s\n' % tool |
+ |
+ return subprocess.call([tool] + sys.argv[1:]) |
+ |
+ |
+if __name__ == '__main__': |
+ sys.exit(main(sys.argv)) |