Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(376)

Side by Side Diff: pkg/polymer/lib/component_build.dart

Issue 23898009: Switch polymer's build.dart to use the new linter. This CL does the following (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: addressing john comments (part 2) - renamed files Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/polymer/lib/builder.dart ('k') | pkg/polymer/lib/deploy.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /** This library is deprecated. Please use `builder.dart` instead. */
6 * Common logic to make it easy to create a `build.dart` for your project. 6 @deprecated
7 *
8 * The `build.dart` script is invoked automatically by the Editor whenever a
9 * file in the project changes. It must be placed in the root of a project
10 * (where pubspec.yaml lives) and should be named exactly 'build.dart'.
11 *
12 * A common `build.dart` would look as follows:
13 *
14 * import 'dart:io';
15 * import 'package:polymer/component_build.dart';
16 *
17 * main() => build(new Options().arguments, ['web/index.html']);
18 */
19 library build_utils; 7 library build_utils;
20 8
21 import 'dart:async'; 9 import 'package:meta/meta.dart';
22 import 'dart:convert';
23 import 'dart:io';
24 import 'package:args/args.dart';
25 10
26 import 'dwc.dart' as dwc; 11 import 'builder.dart' as builder;
27 import 'src/utils.dart';
28 import 'src/compiler_options.dart';
29 12
30 /** 13 /**
31 * Set up 'build.dart' to compile with the dart web components compiler every 14 * This function is deprecated. Please use `build` from `builder.dart`
32 * [entryPoints] listed. On clean commands, the directory where [entryPoints] 15 * instead.
33 * live will be scanned for generated files to delete them.
34 */ 16 */
35 Future<List<dwc.AnalysisResults>> build(List<String> arguments, 17 @deprecated
36 List<String> entryPoints, 18 Future build(List<String> arguments, List<String> entryPoints,
37 {bool printTime: true, bool shouldPrint: true}) { 19 {bool printTime: true, bool shouldPrint: true}) {
38 bool useColors = stdioType(stdout) == StdioType.TERMINAL; 20 return builder.build(
39 return asyncTime('Total time', () { 21 entryPoints: entryPoints, options: parseOptions(arguments));
40 var args = _processArgs(arguments);
41 var tasks = new FutureGroup();
42 var lastTask = new Future.value(null);
43 tasks.add(lastTask);
44
45 var changedFiles = args["changed"];
46 var removedFiles = args["removed"];
47 var cleanBuild = args["clean"];
48 var machineFormat = args["machine"];
49 // Also trigger a full build if the script was run from the command line
50 // with no arguments
51 var fullBuild = args["full"] || (!machineFormat && changedFiles.isEmpty &&
52 removedFiles.isEmpty && !cleanBuild);
53
54 var options = CompilerOptions.parse(args.rest, checkUsage: false);
55
56 if (fullBuild || !changedFiles.isEmpty || !removedFiles.isEmpty) {
57 for (var file in entryPoints) {
58 var dwcArgs = new List.from(args.rest);
59 if (machineFormat) dwcArgs.add('--json_format');
60 if (!useColors) dwcArgs.add('--no-colors');
61 dwcArgs.add(file);
62 // Chain tasks to that we run one at a time.
63 lastTask = lastTask.then((_) => dwc.run(dwcArgs, printTime: printTime,
64 shouldPrint: shouldPrint));
65 if (machineFormat) {
66 lastTask = lastTask.then((res) {
67 appendMessage(Map jsonMessage) {
68 var message = JSON.encode([jsonMessage]);
69 if (shouldPrint) print(message);
70 res.messages.add(message);
71 }
72 return res;
73 });
74 }
75 tasks.add(lastTask);
76 }
77 }
78 return tasks.future.then((r) => r.where((v) => v != null));
79 }, printTime: printTime, useColors: useColors);
80 } 22 }
81
82 /** Process the command-line arguments. */
83 ArgResults _processArgs(List<String> arguments) {
84 var parser = new ArgParser()
85 ..addOption("changed", help: "the file has changed since the last build",
86 allowMultiple: true)
87 ..addOption("removed", help: "the file was removed since the last build",
88 allowMultiple: true)
89 ..addFlag("clean", negatable: false, help: "currently a noop, may be used "
90 "in the future to remove any build artifacts")
91 ..addFlag("full", negatable: false, help: "perform a full build")
92 ..addFlag("machine", negatable: false,
93 help: "produce warnings in a machine parseable format")
94 ..addFlag("help", abbr: 'h',
95 negatable: false, help: "displays this help and exit");
96 var args = parser.parse(arguments);
97 if (args["help"]) {
98 print('A build script that invokes the web-ui compiler (dwc).');
99 print('Usage: dart build.dart [options] [-- [dwc-options]]');
100 print('\nThese are valid options expected by build.dart:');
101 print(parser.getUsage());
102 print('\nThese are valid options expected by dwc:');
103 dwc.run(['-h']).then((_) => exit(0));
104 }
105 return args;
106 }
OLDNEW
« no previous file with comments | « pkg/polymer/lib/builder.dart ('k') | pkg/polymer/lib/deploy.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698