a89fca38ca
BUG= R=alanknight@google.com, efortuna@google.com Review URL: https://codereview.chromium.org//19775011 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25286 260f80e4-7a28-3924-810f-c04153c831b5
105 lines
3.3 KiB
Python
105 lines
3.3 KiB
Python
#!/usr/bin/python
|
|
#
|
|
# Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
|
# for details. All rights reserved. Use of this source code is governed by a
|
|
# BSD-style license that can be found in the LICENSE file.
|
|
|
|
""" This file will run docgen.dart on the SDK libraries, and upload them to
|
|
Google Cloud Storage for the documentation viewer.
|
|
"""
|
|
|
|
import optparse
|
|
import os
|
|
from os.path import join, dirname, abspath, exists
|
|
import platform
|
|
import subprocess
|
|
import sys
|
|
sys.path.append(abspath(join(dirname(__file__), '../../../tools')))
|
|
import utils
|
|
from upload_sdk import ExecuteCommand
|
|
|
|
|
|
DART = abspath(join(dirname(__file__), '../../../%s/%s/dart-sdk/bin/dart'
|
|
% (utils.BUILD_ROOT[utils.GuessOS()], utils.GetBuildConf('release',
|
|
utils.GuessArchitecture()))))
|
|
PACKAGE_ROOT = abspath(join(dirname(__file__), '../../../%s/%s/packages/'
|
|
% (utils.BUILD_ROOT[utils.GuessOS()], utils.GetBuildConf('release',
|
|
utils.GuessArchitecture()))))
|
|
GSUTIL = utils.GetBuildbotGSUtilPath()
|
|
GS_SITE = 'gs://dartlang-docgen'
|
|
DESCRIPTION='Runs docgen.dart on the SDK libraries, and uploads them to Google \
|
|
Cloud Storage for the dartdoc-viewer. '
|
|
|
|
|
|
def GetOptions():
|
|
parser = optparse.OptionParser(description=DESCRIPTION)
|
|
parser.add_option('--package-root', dest='pkg_root',
|
|
help='The package root for dart. (Default is in the build directory.)',
|
|
action='store', default=PACKAGE_ROOT)
|
|
(options, args) = parser.parse_args()
|
|
SetPackageRoot(options.pkg_root)
|
|
|
|
|
|
def SetPackageRoot(path):
|
|
global PACKAGE_ROOT
|
|
if exists(path):
|
|
PACKAGE_ROOT = abspath(path)
|
|
|
|
|
|
def SetGsutil():
|
|
""" If not on buildbots, find gsutil relative to docgen. """
|
|
global GSUTIL
|
|
if not exists(GSUTIL):
|
|
GSUTIL = abspath(join(dirname(__file__),
|
|
'../../../third_party/gsutil/gsutil'))
|
|
|
|
|
|
def Upload(source, target):
|
|
""" Upload files to Google Storage. """
|
|
cmd = [GSUTIL, '-m', 'cp', '-q', '-a', 'public-read', '-r', source, target]
|
|
(status, output) = ExecuteCommand(cmd)
|
|
return status
|
|
|
|
|
|
def main():
|
|
GetOptions()
|
|
|
|
SetGsutil()
|
|
|
|
# Execute Docgen.dart on the SDK.
|
|
ExecuteCommand([DART, '--checked', '--package-root=' + PACKAGE_ROOT,
|
|
abspath(join(dirname(__file__), 'docgen.dart')),
|
|
'--parse-sdk'])
|
|
|
|
# Use SVN Revision to get the revision number.
|
|
revision = utils.GetSVNRevision()
|
|
if revision is None:
|
|
# Try to find the version from the dart-sdk folder.
|
|
revision_file_location = abspath(join(dirname(__file__),
|
|
'../../../%s/%s/dart-sdk/revision' % (utils.BUILD_ROOT[utils.GuessOS()],
|
|
utils.GetBuildConf('release', utils.GuessArchitecture()))))
|
|
with open(revision_file_location, 'r') as revision_file:
|
|
revision = revision_file.readline(5)
|
|
revision_file.close()
|
|
|
|
if revision is None:
|
|
raise Exception("Unable to find revision. ")
|
|
|
|
# Upload the all files in Docs into a folder based off Revision number on
|
|
# Cloud Storage.
|
|
Upload('./docs/*', GS_SITE + '/' + revision + '/')
|
|
|
|
# Update VERSION file in Cloud Storage.
|
|
with open('VERSION', 'w') as version_file:
|
|
version_file.write(revision)
|
|
version_file.close()
|
|
Upload('./VERSION', GS_SITE + '/VERSION')
|
|
|
|
# Clean up the files it creates.
|
|
ExecuteCommand(['rm', '-rf', './docs'])
|
|
ExecuteCommand(['rm', '-f', './VERSION'])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|