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

Unified Diff: pkg/polymer/lib/deploy.dart

Issue 23445009: Prune the old deploy code. This CL does a few changes: (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: pkg/polymer/lib/deploy.dart
diff --git a/pkg/polymer/lib/deploy.dart b/pkg/polymer/lib/deploy.dart
index 86f157ba1ee3dd7cf3e8408fee8279ca9887b854..4fd9fa6cbafe3d3722da9c45e1c5ccdc519f934a 100644
--- a/pkg/polymer/lib/deploy.dart
+++ b/pkg/polymer/lib/deploy.dart
@@ -26,17 +26,32 @@ import 'package:yaml/yaml.dart';
import 'package:args/args.dart';
main() {
- var args = _parseArgs();
+ var args = _parseArgs(new Options().arguments);
if (args == null) return;
print('polymer/deploy.dart: creating a deploy target for "$_currentPackage"');
+ var outDir = args['out'];
+ _run(args['webdir'], outDir).then(
+ (_) => print('Done! All files written to "$outDir"'));
+}
+
+/**
+ * API exposed for testing purposes. Runs this deploy command but prentend that
+ * the sources under [webDir] belong to package 'test'.
+ */
+Future runForTest(String webDir, String outDir) {
+ _currentPackage = 'test';
+ return _run(webDir, outDir);
+}
+
+Future _run(String webDir, String outDir) {
var barback = new Barback(new _PolymerDeployProvider());
- _initializeBarback(barback);
+ _initializeBarback(barback, webDir);
_attachListeners(barback);
- _emitAllFiles(barback, args['out']);
+ return _emitAllFiles(barback, webDir, outDir);
}
/** Tell barback which transformers to use and which assets to process. */
-void _initializeBarback(Barback barback) {
+void _initializeBarback(Barback barback, String webDir) {
var assets = [];
for (var package in _packageDirs.keys) {
// Do not process packages like 'polymer' where there is nothing to do.
@@ -54,7 +69,7 @@ void _initializeBarback(Barback barback) {
}
// In case of the current package, include also 'web'.
- for (var filepath in _listDir(_currentPackage, 'web')) {
+ for (var filepath in _listDir(_currentPackage, webDir)) {
assets.add(new AssetId(_currentPackage, filepath));
}
barback.updateSources(assets);
@@ -100,17 +115,17 @@ void _ensureDir(var dirpath) {
* Emits all outputs of [barback] and copies files that we didn't process (like
* polymer's libraries).
*/
-Future _emitAllFiles(Barback barback, String outDir) {
+Future _emitAllFiles(Barback barback, String webDir, String outDir) {
return barback.getAllAssets().then((assets) {
// Copy all the assets we transformed
var futures = [];
for (var asset in assets) {
var id = asset.id;
var filepath;
- if (id.package == _currentPackage && id.path.startsWith('web/')) {
+ if (id.package == _currentPackage && id.path.startsWith('$webDir/')) {
filepath = path.join(outDir, id.path);
} else if (id.path.startsWith('lib/')) {
- filepath = path.join(outDir, 'web', 'packages', id.package,
+ filepath = path.join(outDir, webDir, 'packages', id.package,
id.path.substring(4));
} else {
// TODO(sigmund): do something about other assets?
@@ -128,7 +143,7 @@ Future _emitAllFiles(Barback barback, String outDir) {
for (var package in _ignoredPackages) {
for (var relpath in _listDir(package, 'lib')) {
var inpath = path.join(_packageDirs[package], relpath);
- var outpath = path.join(outDir, 'web', 'packages', package,
+ var outpath = path.join(outDir, webDir, 'packages', package,
relpath.substring(4));
_ensureDir(path.dirname(outpath));
@@ -137,8 +152,7 @@ Future _emitAllFiles(Barback barback, String outDir) {
.then((_) => writer.close()));
}
}
- return Future.wait(futures)
- .then((_) => print('Done! All files written to "$outDir"'));
+ return Future.wait(futures);
});
}
@@ -194,7 +208,7 @@ Map<String, String> _packageDirs = () {
*/
// TODO(sigmund): consider computing this list by recursively parsing
// pubspec.yaml files in the [_packageDirs].
-Set<String> _ignoredPackages =
+final Set<String> _ignoredPackages =
(const [ 'analyzer_experimental', 'args', 'barback', 'browser', 'csslib',
'custom_element', 'fancy_syntax', 'html5lib', 'html_import', 'js',
'logging', 'mdv', 'meta', 'mutation_observer', 'observe', 'path',
@@ -203,14 +217,16 @@ Set<String> _ignoredPackages =
'unmodifiable_collection', 'yaml'
]).toSet();
-ArgResults _parseArgs() {
+ArgResults _parseArgs(arguments) {
var parser = new ArgParser()
..addFlag('help', abbr: 'h', help: 'Displays this help message',
defaultsTo: false, negatable: false)
+ ..addOption('webdir', help: 'Directory containing the application',
+ defaultsTo: 'web')
..addOption('out', abbr: 'o', help: 'Directory where to generated files',
defaultsTo: 'out');
try {
- var results = parser.parse(new Options().arguments);
+ var results = parser.parse(arguments);
if (results['help']) {
_showUsage(parser);
return null;

Powered by Google App Engine
This is Rietveld 408576698