blob: d97b20d2f66f72c554d1c2c4bdb08459f43217c1 [file] [log] [blame]
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
// for details. 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:io';
import 'package:kernel/kernel.dart';
class CommandLineHelper {
static void requireExactlyOneArgument(
List<String> args, void Function() usage,
{bool requireFileExists: false}) {
if (args.length != 1) {
print("Expected exactly 1 argument, got ${args.length}.");
usage();
}
if (requireFileExists) CommandLineHelper.requireFileExists(args[0]);
}
static void requireVariableArgumentCount(
List<int> ok, List<String> args, void Function() usage) {
if (!ok.contains(args.length)) {
print("Expected the argument count to be one of ${ok}, got "
"${args.length}.");
usage();
}
}
static void requireFileExists(String file) {
if (!new File(file).existsSync()) {
print("File $file doesn't exist.");
exit(1);
}
}
static Component tryLoadDill(String file) {
try {
return loadComponentFromBinary(file);
} catch (e, s) {
print("$file can't be loaded:");
print('$e\n$s');
exit(1);
}
}
}