From 682e371e3c964d21bd4ab7bdf6d3429c604e7cfc Mon Sep 17 00:00:00 2001 From: Bearmine Date: Sun, 30 Nov 2025 11:08:31 -0600 Subject: [PATCH] Setup framework for running days from single command --- bin/adventofcode2025.dart | 28 ++++++++++++++++++++++++++-- lib/adventofcode2025.dart | 3 --- lib/day1/main.dart | 3 +++ pubspec.lock | 2 +- pubspec.yaml | 1 + 5 files changed, 31 insertions(+), 6 deletions(-) delete mode 100644 lib/adventofcode2025.dart create mode 100644 lib/day1/main.dart diff --git a/bin/adventofcode2025.dart b/bin/adventofcode2025.dart index 8e311d5..d978f77 100644 --- a/bin/adventofcode2025.dart +++ b/bin/adventofcode2025.dart @@ -1,5 +1,29 @@ -import 'package:adventofcode2025/adventofcode2025.dart' as adventofcode2025; +import 'dart:io'; + +import 'package:adventofcode2025/day1/main.dart' as day1; + +import 'package:args/args.dart'; + +const help = 'help'; +const dayNumber = 'day'; void main(List arguments) { - print('Hello world: ${adventofcode2025.calculate()}!'); + final parser = ArgParser() + ..addFlag(help, negatable: false, abbr: 'h') + ..addOption(dayNumber, mandatory: true, abbr: "d"); + var results = parser.parse(arguments); + + if (results.flag(help)) { + print(parser.usage); + exit(0); + } + + var day = results.option(dayNumber); + + switch (day) { + case '1': + day1.run(); + default: + print("'$day' is not a valid value for option $dayNumber"); + } } diff --git a/lib/adventofcode2025.dart b/lib/adventofcode2025.dart deleted file mode 100644 index f64ad72..0000000 --- a/lib/adventofcode2025.dart +++ /dev/null @@ -1,3 +0,0 @@ -int calculate() { - return 6 * 7; -} diff --git a/lib/day1/main.dart b/lib/day1/main.dart new file mode 100644 index 0000000..b30eda8 --- /dev/null +++ b/lib/day1/main.dart @@ -0,0 +1,3 @@ +void run() { + print("Hello World Day 1"); +} diff --git a/pubspec.lock b/pubspec.lock index 712a3ee..71850b6 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -18,7 +18,7 @@ packages: source: hosted version: "8.1.1" args: - dependency: transitive + dependency: "direct main" description: name: args sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 diff --git a/pubspec.yaml b/pubspec.yaml index 876926c..6a75169 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -8,6 +8,7 @@ environment: # Add regular dependencies here. dependencies: + args: ^2.7.0 # path: ^1.8.0 dev_dependencies: