blob: 1a46107081979f6e58eaf7bda02eff148f52702d [file] [edit]
// 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);
}
}
}