| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # | 2 # |
| 3 # Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 3 # Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 4 # for details. All rights reserved. Use of this source code is governed by a | 4 # for details. All rights reserved. Use of this source code is governed by a |
| 5 # BSD-style license that can be found in the LICENSE file. | 5 # BSD-style license that can be found in the LICENSE file. |
| 6 | 6 |
| 7 # Run this script to generate documentation for a directory and serve | 7 # Run this script to generate documentation for a directory and serve |
| 8 # the results to localhost for viewing in the browser. | 8 # the results to localhost for viewing in the browser. |
| 9 | 9 |
| 10 import optparse | 10 import optparse |
| 11 import os | 11 import os |
| 12 from os.path import join, dirname, abspath, exists | 12 from os.path import join, dirname, abspath, exists |
| 13 import platform | 13 import platform |
| 14 import subprocess | 14 import subprocess |
| 15 import sys | 15 import sys |
| 16 sys.path.append(abspath(join(dirname(__file__), '../../../tools'))) | 16 sys.path.append(abspath(join(dirname(__file__), '../../../tools'))) |
| 17 import utils | 17 import utils |
| 18 | 18 |
| 19 DIRECTORY = abspath(dirname(__file__)) | 19 DIRECTORY = abspath(dirname(__file__)) |
| 20 DART_DIR = dirname(dirname(dirname(DIRECTORY))) | 20 DART_DIR = dirname(dirname(dirname(DIRECTORY))) |
| 21 DART_EXECUTABLE = join(DART_DIR, | 21 DART_EXECUTABLE = join(DART_DIR, |
| 22 '%s/%s/dart-sdk/bin/dart' % (utils.BUILD_ROOT[utils.GuessOS()], | 22 '%s/%s/dart-sdk/bin/dart' % (utils.BUILD_ROOT[utils.GuessOS()], |
| 23 utils.GetBuildConf('release', utils.GuessArchitecture()))) | 23 utils.GetBuildConf('release', utils.GuessArchitecture()))) |
| 24 PUB = join(DART_DIR, 'sdk/bin/pub') | 24 PUB = join(DART_DIR, 'sdk/bin/pub') |
| 25 DART2JS = join(DART_DIR, 'sdk/bin/dart2js') | 25 DART2JS = join(DART_DIR, 'sdk/bin/dart2js') |
| 26 PACKAGE_ROOT = join(dirname(dirname(dirname(DART_EXECUTABLE[:-(len('dart'))]))), | 26 PACKAGE_ROOT = join(dirname(dirname(dirname(DART_EXECUTABLE[:-(len('dart'))]))), |
| 27 'packages/') | 27 'packages/') |
| 28 EXCLUDED_PACKAGES = ['browser', 'html_import', 'mutation_observer', | 28 EXCLUDED_PACKAGES = ['browser', 'mutation_observer', 'pkg.xcodeproj'] |
| 29 'pkg.xcodeproj', 'shadow_dom'] | |
| 30 APPSERVER_EXECUTABLE = 'dev_appserver.py' | 29 APPSERVER_EXECUTABLE = 'dev_appserver.py' |
| 31 | 30 |
| 32 | 31 |
| 33 def SetPackageRoot(path): | 32 def SetPackageRoot(path): |
| 34 global PACKAGE_ROOT | 33 global PACKAGE_ROOT |
| 35 if exists(path): | 34 if exists(path): |
| 36 PACKAGE_ROOT = abspath(path) | 35 PACKAGE_ROOT = abspath(path) |
| 37 | 36 |
| 38 | 37 |
| 39 def ParseArgs(): | 38 def ParseArgs(): |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 80 | 79 |
| 81 def GenerateAllDocs(docgen_options): | 80 def GenerateAllDocs(docgen_options): |
| 82 '''Generate all documentation for the SDK and all packages in the repository. | 81 '''Generate all documentation for the SDK and all packages in the repository. |
| 83 We first attempt to run the quickest path to generate all docs, but if that | 82 We first attempt to run the quickest path to generate all docs, but if that |
| 84 fails, we fall back on a slower option.''' | 83 fails, we fall back on a slower option.''' |
| 85 # TODO(alanknight): The --append option doesn't work properly. It overwrites | 84 # TODO(alanknight): The --append option doesn't work properly. It overwrites |
| 86 # existing files with new information. Known symptom is that it loses subclasses | 85 # existing files with new information. Known symptom is that it loses subclasses |
| 87 # from the SDK and includes only the ones from pkg. So right now our only option | 86 # from the SDK and includes only the ones from pkg. So right now our only option |
| 88 # is to do everything in one pass. | 87 # is to do everything in one pass. |
| 89 doc_dir = join(DART_DIR, 'pkg') | 88 doc_dir = join(DART_DIR, 'pkg') |
| 90 cmd_lst = [DART_EXECUTABLE, | 89 cmd_lst = [DART_EXECUTABLE, |
| 91 '--package-root=%s' % PACKAGE_ROOT, 'docgen.dart', '--include-sdk' ] | 90 '--package-root=%s' % PACKAGE_ROOT, 'docgen.dart', '--include-sdk' ] |
| 92 cmd_str = ' '.join(AddUserDocgenOptions(cmd_lst, docgen_options, True)) | 91 cmd_str = ' '.join(AddUserDocgenOptions(cmd_lst, docgen_options, True)) |
| 93 # Try to run all pkg docs together at once as it's fastest. | 92 # Try to run all pkg docs together at once as it's fastest. |
| 94 (return_code, _) = ExecuteCommandString('%s %s' % (cmd_str, doc_dir)) | 93 (return_code, _) = ExecuteCommandString('%s %s' % (cmd_str, doc_dir)) |
| 95 if return_code != 0: | 94 if return_code != 0: |
| 96 # We failed to run all the pkg docs, so try to generate docs for each pkg | 95 # We failed to run all the pkg docs, so try to generate docs for each pkg |
| 97 # individually. | 96 # individually. |
| 98 failed_pkgs = [] | 97 failed_pkgs = [] |
| 99 for directory in os.listdir(join(DART_DIR, 'pkg')): | 98 for directory in os.listdir(join(DART_DIR, 'pkg')): |
| 100 doc_dir = join(DART_DIR, 'pkg', directory) | 99 doc_dir = join(DART_DIR, 'pkg', directory) |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 print ( | 155 print ( |
| 157 "\nPoint your browser to the address of the 'default' server below.") | 156 "\nPoint your browser to the address of the 'default' server below.") |
| 158 raw_input("Press <RETURN> to terminate the server.\n\n") | 157 raw_input("Press <RETURN> to terminate the server.\n\n") |
| 159 server.terminate() | 158 server.terminate() |
| 160 finally: | 159 finally: |
| 161 os.chdir(cwd) | 160 os.chdir(cwd) |
| 162 subprocess.call(['rm', '-rf', 'dartdoc-viewer']) | 161 subprocess.call(['rm', '-rf', 'dartdoc-viewer']) |
| 163 | 162 |
| 164 if __name__ == '__main__': | 163 if __name__ == '__main__': |
| 165 main() | 164 main() |
| OLD | NEW |