Start day 2
This commit is contained in:
45
lib/day2/command.dart
Normal file
45
lib/day2/command.dart
Normal file
@@ -0,0 +1,45 @@
|
||||
import "dart:convert";
|
||||
import "dart:io";
|
||||
|
||||
import "package:args/command_runner.dart";
|
||||
|
||||
class Day2Command extends Command {
|
||||
// The [name] and [description] properties must be defined by every
|
||||
// subclass.
|
||||
@override
|
||||
final name = "day2";
|
||||
|
||||
@override
|
||||
final description = "Run Advent of Code 2025 Day 2";
|
||||
|
||||
Day2Command() {
|
||||
// we can add command specific arguments here.
|
||||
// [argParser] is automatically created by the parent class.
|
||||
}
|
||||
|
||||
// [run] may also return a Future.
|
||||
@override
|
||||
Future<void> run() async {
|
||||
// [argResults] is set before [run()] is called and contains the flags/options
|
||||
// passed to this command.
|
||||
|
||||
if (argResults!.rest.length != 1) {
|
||||
print(
|
||||
"Expected 1 positional arguments, found ${argResults!.rest.length}",
|
||||
);
|
||||
}
|
||||
var filePath = argResults!.rest[0];
|
||||
|
||||
print("Parsing file: $filePath");
|
||||
|
||||
var inputFile = File(filePath);
|
||||
var openFile = inputFile.openRead();
|
||||
|
||||
var lines = openFile.transform(utf8.decoder).transform(LineSplitter());
|
||||
|
||||
await for (var line in lines) {
|
||||
print(line);
|
||||
print('-------');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user