OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 import 'dart:async'; | 5 import 'dart:async'; |
6 import 'dart:convert'; | 6 import 'dart:convert'; |
7 | 7 |
8 import 'package:path/path.dart' as p; | 8 import 'package:path/path.dart' as p; |
9 import 'package:pub/src/io.dart'; | 9 import 'package:pub/src/io.dart'; |
10 import 'package:pub/src/utils.dart'; | 10 import 'package:pub/src/utils.dart'; |
(...skipping 19 matching lines...) Expand all Loading... |
30 | 30 |
31 currentSchedule.onComplete.schedule(() { | 31 currentSchedule.onComplete.schedule(() { |
32 _globalPackageServer = null; | 32 _globalPackageServer = null; |
33 }, 'clearing the global package server'); | 33 }, 'clearing the global package server'); |
34 } | 34 } |
35 | 35 |
36 /// Like [servePackages], but instead creates an empty server with no packages | 36 /// Like [servePackages], but instead creates an empty server with no packages |
37 /// registered. | 37 /// registered. |
38 /// | 38 /// |
39 /// This will always replace a previous server. | 39 /// This will always replace a previous server. |
40 void serveNoPackages() => servePackages((_) {}, replace: true); | 40 void serveNoPackages() => servePackages((_) {}); |
41 | 41 |
42 /// A shortcut for [servePackages] that serves the version of barback used by | 42 /// A shortcut for [servePackages] that serves the version of barback used by |
43 /// pub. | 43 /// pub. |
44 void serveBarback() { | 44 void serveBarback() { |
45 servePackages((builder) { | 45 servePackages((builder) { |
46 builder.serveRealPackage('barback'); | 46 builder.serveRealPackage('barback'); |
47 }); | 47 }); |
48 } | 48 } |
49 | 49 |
50 class PackageServer { | 50 class PackageServer { |
(...skipping 13 matching lines...) Expand all Loading... |
64 /// This contains the tarballs for packages that are being served via | 64 /// This contains the tarballs for packages that are being served via |
65 /// [servePackages]. | 65 /// [servePackages]. |
66 final _servedPackageDir = d.dir('packages', []); | 66 final _servedPackageDir = d.dir('packages', []); |
67 | 67 |
68 /// The current [PackageServerBuilder] that a user uses to specify which | 68 /// The current [PackageServerBuilder] that a user uses to specify which |
69 /// package to serve. | 69 /// package to serve. |
70 /// | 70 /// |
71 /// This is preserved so that additional packages can be added. | 71 /// This is preserved so that additional packages can be added. |
72 var _builder = new PackageServerBuilder._(); | 72 var _builder = new PackageServerBuilder._(); |
73 | 73 |
| 74 /// A future that will complete to the port used for the server. |
| 75 Future<int> get port => _inner.port; |
| 76 |
74 /// Creates an HTTP server that replicates the structure of pub.dartlang.org. | 77 /// Creates an HTTP server that replicates the structure of pub.dartlang.org. |
75 /// | 78 /// |
76 /// Calls [callback] with a [PackageServerBuilder] that's used to specify | 79 /// Calls [callback] with a [PackageServerBuilder] that's used to specify |
77 /// which packages to serve. | 80 /// which packages to serve. |
78 PackageServer(void callback(PackageServerBuilder builder)) { | 81 PackageServer(void callback(PackageServerBuilder builder)) { |
79 _inner = new DescriptorServer([ | 82 _inner = new DescriptorServer([ |
80 d.dir('api', [_servedApiPackageDir]), | 83 d.dir('api', [_servedApiPackageDir]), |
81 _servedPackageDir | 84 _servedPackageDir |
82 ]); | 85 ]); |
83 | 86 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 | 217 |
215 /// A package that's intended to be served. | 218 /// A package that's intended to be served. |
216 class _ServedPackage { | 219 class _ServedPackage { |
217 final Map pubspec; | 220 final Map pubspec; |
218 final List<d.Descriptor> contents; | 221 final List<d.Descriptor> contents; |
219 | 222 |
220 Version get version => new Version.parse(pubspec['version']); | 223 Version get version => new Version.parse(pubspec['version']); |
221 | 224 |
222 _ServedPackage(this.pubspec, this.contents); | 225 _ServedPackage(this.pubspec, this.contents); |
223 } | 226 } |
OLD | NEW |