blob: 52a5acb236c433e2383982a6a61eeeb7385a699c [file] [log] [blame]
// Copyright 2017 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.
import 'dart:async';
import 'dart:io';
import 'package:archive/archive.dart';
import 'package:http/http.dart' as http;
const String kDocRoot = 'dev/docs/doc';
/// This script downloads an archive of Javadoc and objc doc for the engine from
/// the artifact store and extracts them to the location used for Dartdoc.
Future<Null> main(List<String> args) async {
final String engineVersion = new File('bin/internal/engine.version').readAsStringSync().trim();
final String javadocUrl = '$engineVersion/';
generateDocs(javadocUrl, 'javadoc', 'io/flutter/view/FlutterView.html');
final String objcdocUrl = '$engineVersion/';
generateDocs(objcdocUrl, 'objcdoc', 'Classes/FlutterViewController.html');
Future<Null> generateDocs(String url, String docName, String checkFile) async {
final http.Response response = await http.get(url);
final Archive archive = new ZipDecoder().decodeBytes(response.bodyBytes);
final Directory output = new Directory('$kDocRoot/$docName');
print('Extracting $docName to ${output.path}');
output.createSync(recursive: true);
for (ArchiveFile af in archive) {
if (af.isFile) {
final File file = new File('${output.path}/${}');
file.createSync(recursive: true);
final File testFile = new File('${output.path}/$checkFile');
if (!testFile.existsSync()) {
print('Expected file ${testFile.path} not found');
print('$docName ready to go!');