Add initial files
This commit is contained in:
parent
203069260d
commit
12f4e63ea9
10 changed files with 215 additions and 0 deletions
61
dart/bin/dart.dart
Normal file
61
dart/bin/dart.dart
Normal file
|
@ -0,0 +1,61 @@
|
|||
import 'package:args/args.dart';
|
||||
|
||||
const String version = '0.0.1';
|
||||
|
||||
ArgParser buildParser() {
|
||||
return ArgParser()
|
||||
..addFlag(
|
||||
'help',
|
||||
abbr: 'h',
|
||||
negatable: false,
|
||||
help: 'Print this usage information.',
|
||||
)
|
||||
..addFlag(
|
||||
'verbose',
|
||||
abbr: 'v',
|
||||
negatable: false,
|
||||
help: 'Show additional command output.',
|
||||
)
|
||||
..addFlag(
|
||||
'version',
|
||||
negatable: false,
|
||||
help: 'Print the tool version.',
|
||||
);
|
||||
}
|
||||
|
||||
void printUsage(ArgParser argParser) {
|
||||
print('Usage: dart dart.dart <flags> [arguments]');
|
||||
print(argParser.usage);
|
||||
}
|
||||
|
||||
void main(List<String> arguments) {
|
||||
final ArgParser argParser = buildParser();
|
||||
try {
|
||||
final ArgResults results = argParser.parse(arguments);
|
||||
bool verbose = false;
|
||||
|
||||
// Process the parsed arguments.
|
||||
if (results.wasParsed('help')) {
|
||||
printUsage(argParser);
|
||||
return;
|
||||
}
|
||||
if (results.wasParsed('version')) {
|
||||
print('dart version: $version');
|
||||
return;
|
||||
}
|
||||
if (results.wasParsed('verbose')) {
|
||||
verbose = true;
|
||||
}
|
||||
|
||||
// Act on the arguments provided.
|
||||
print('Positional arguments: ${results.rest}');
|
||||
if (verbose) {
|
||||
print('[VERBOSE] All arguments: ${results.arguments}');
|
||||
}
|
||||
} on FormatException catch (e) {
|
||||
// Print usage information if an invalid argument was provided.
|
||||
print(e.message);
|
||||
print('');
|
||||
printUsage(argParser);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue