Skip to content

Commit 071d1f2

Browse files
committed
Merge pull request #339 from dart-lang/add_version
add a --version option
2 parents 9383237 + 318584b commit 071d1f2

File tree

6 files changed

+32
-2
lines changed

6 files changed

+32
-2
lines changed

pkg/dev_compiler/bin/dartdevc.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@ library dev_compiler.bin.dartdevc;
99

1010
import 'dart:io';
1111

12+
import 'package:dev_compiler/devc.dart' show devCompilerVersion;
1213
import 'package:dev_compiler/src/compiler.dart'
1314
show validateOptions, compile, setupLogger;
1415
import 'package:dev_compiler/src/options.dart';
1516
import 'package:dev_compiler/src/server/server.dart' show DevServer;
1617

18+
const String _appName = 'dartdevc';
19+
1720
void _showUsageAndExit() {
1821
print('usage: dartdevc [<options>] <file.dart>...\n');
1922
print('<file.dart> is one or more Dart files to process.\n');
@@ -33,6 +36,10 @@ main(List<String> args) async {
3336
}
3437

3538
if (options == null || options.help) _showUsageAndExit();
39+
if (options.version) {
40+
print('${_appName} version ${devCompilerVersion}');
41+
exit(0);
42+
}
3643

3744
setupLogger(options.logLevel, print);
3845

pkg/dev_compiler/bin/devrun.dart

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ library dev_compiler.bin.devrun;
88

99
import 'dart:io';
1010

11+
import 'package:dev_compiler/devc.dart' show devCompilerVersion;
1112
import 'package:dev_compiler/src/compiler.dart' show validateOptions, compile;
1213
import 'package:dev_compiler/src/options.dart';
1314
import 'package:dev_compiler/src/runner/runtime_utils.dart'
@@ -16,8 +17,10 @@ import 'package:dev_compiler/src/runner/v8_runner.dart' show V8Runner;
1617

1718
import 'package:path/path.dart';
1819

20+
const String _appName = 'dartdevrun';
21+
1922
void _showUsageAndExit() {
20-
print('usage: dartdevrun [<options>] <file.dart>\n');
23+
print('usage: ${_appName} [<options>] <file.dart>\n');
2124
print('<file.dart> is a single Dart file to run.\n');
2225
print('<options> include:\n');
2326
print(argParser.usage);
@@ -39,6 +42,10 @@ main(List<String> args) async {
3942
}
4043

4144
if (options == null || options.help) _showUsageAndExit();
45+
if (options.version) {
46+
print('${_appName} version ${devCompilerVersion}');
47+
exit(0);
48+
}
4249

4350
if (options.inputs.length != 1) {
4451
stderr.writeln("Please only specify one input to run");

pkg/dev_compiler/lib/devc.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,6 @@ export 'src/analysis_context.dart'
1010
export 'src/compiler.dart' show BatchCompiler, setupLogger, createErrorReporter;
1111
export 'src/server/server.dart' show DevServer;
1212
export 'strong_mode.dart' show StrongModeOptions;
13+
14+
// When updating this version, also update the version in the pubspec.
15+
const devCompilerVersion = '0.1.7';

pkg/dev_compiler/lib/src/compiler.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ StreamSubscription setupLogger(Level level, printFn) {
4848

4949
CompilerOptions validateOptions(List<String> args, {bool forceOutDir: false}) {
5050
var options = parseOptions(args, forceOutDir: forceOutDir);
51-
if (!options.help) {
51+
if (!options.help && !options.version) {
5252
var srcOpts = options.sourceOptions;
5353
if (!srcOpts.useMockSdk && srcOpts.dartSdkPath == null) {
5454
print('Could not automatically find dart sdk path.');

pkg/dev_compiler/lib/src/options.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@ class CompilerOptions {
115115
/// Whether the user asked for help.
116116
final bool help;
117117

118+
/// Whether the user asked for the app version.
119+
final bool version;
120+
118121
/// Minimum log-level reported on the command-line.
119122
final Level logLevel;
120123

@@ -155,6 +158,7 @@ class CompilerOptions {
155158
this.dumpInfoFile,
156159
this.useColors: true,
157160
this.help: false,
161+
this.version: false,
158162
this.logLevel: Level.SEVERE,
159163
this.serverMode: false,
160164
this.enableHashing: false,
@@ -170,6 +174,7 @@ class CompilerOptions {
170174
CompilerOptions parseOptions(List<String> argv, {bool forceOutDir: false}) {
171175
ArgResults args = argParser.parse(argv);
172176
bool showUsage = args['help'];
177+
bool showVersion = args['version'];
173178

174179
var serverMode = args['server'];
175180
var enableHashing = args['hashing'];
@@ -241,6 +246,7 @@ CompilerOptions parseOptions(List<String> argv, {bool forceOutDir: false}) {
241246
dumpInfoFile: args['dump-info-file'],
242247
useColors: useColors,
243248
help: showUsage,
249+
version: showVersion,
244250
logLevel: logLevel,
245251
serverMode: serverMode,
246252
enableHashing: enableHashing,
@@ -288,6 +294,7 @@ final ArgParser argParser = StrongModeOptions.addArguments(new ArgParser()
288294

289295
// general options
290296
..addFlag('help', abbr: 'h', help: 'Display this message')
297+
..addFlag('version', help: 'Display the Dev Compiler verion')
291298
..addFlag('server', help: 'Run as a development server.', defaultsTo: false)
292299
..addFlag('hashing',
293300
help: 'Enable hash-based file caching.', defaultsTo: null)

pkg/dev_compiler/pubspec.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
name: dev_compiler
2+
# When updating this version, also update the version in lib/devc.dart.
23
version: 0.1.7
34
description: >
45
Experimental Dart to JavaScript compiler designed to create idiomatic,
56
readable JavaScript output.
7+
68
author: Dart Dev Compiler team <[email protected]>
79
homepage: https://github.com/dart-lang/dev_compiler
10+
811
dependencies:
912
analyzer: ^0.26.0-alpha.0
1013
args: ^0.13.0
@@ -19,14 +22,17 @@ dependencies:
1922
source_maps: ^0.10.0
2023
source_span: ^1.0.2
2124
yaml: ^2.1.2
25+
2226
dev_dependencies:
2327
# We pin a specific version to ensure everyone is formatting the code exactly
2428
# the same way. This is because any change in dart_style, even non-breaking
2529
# changes, may change the output format.
2630
dart_style: 0.2.0
2731
test: ^0.12.0
32+
2833
environment:
2934
sdk: ">=1.12.0-dev.1.1 <2.0.0"
35+
3036
executables:
3137
# Similar to "analyzer.dart" and its command line "dartanalyzer" we use
3238
# "dartdevc".

0 commit comments

Comments
 (0)