Replace dart:io File/Directory with package:file abstractions so that tests can use MemoryFileSystem instead of mutating the process-global Directory.current. - Add file: ^7.0.1 to core and kanban dependencies - ProjectContext.find() accepts FileSystem fs parameter - TicketStore, KanbanInitHook, InitCommand, all kanban commands accept FileSystem fs (defaulting to LocalFileSystem()) - KanbanCommand and registerCommands() thread fs to subcommands - Tests rewritten to use MemoryFileSystem() — no Directory.current mutation - Remove dart_test.yaml (concurrency: 1 no longer needed) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
49 lines
1.6 KiB
Dart
49 lines
1.6 KiB
Dart
import 'package:dew_core/dew_core.dart';
|
|
import 'package:file/file.dart';
|
|
import 'package:file/local.dart';
|
|
|
|
import 'commands/add_comment_command.dart';
|
|
import 'commands/archive_command.dart';
|
|
import 'commands/board_command.dart';
|
|
import 'commands/create_command.dart';
|
|
import 'commands/delete_command.dart';
|
|
import 'commands/get_command.dart';
|
|
import 'commands/get_config_command.dart';
|
|
import 'commands/link_command.dart';
|
|
import 'commands/list_command.dart';
|
|
import 'commands/move_command.dart';
|
|
import 'commands/search_command.dart';
|
|
import 'commands/stats_command.dart';
|
|
import 'commands/unarchive_command.dart';
|
|
import 'commands/unlink_command.dart';
|
|
import 'commands/update_command.dart';
|
|
|
|
/// Top-level CLI command for all Kanban board operations.
|
|
class KanbanCommand extends DewCommand {
|
|
KanbanCommand({FileSystem fs = const LocalFileSystem()}) {
|
|
addSubcommand(CreateCommand(fs: fs));
|
|
addSubcommand(ListCommand(fs: fs));
|
|
addSubcommand(BoardCommand(fs: fs));
|
|
addSubcommand(GetCommand(fs: fs));
|
|
addSubcommand(UpdateCommand(fs: fs));
|
|
addSubcommand(DeleteCommand(fs: fs));
|
|
addSubcommand(ArchiveCommand(fs: fs));
|
|
addSubcommand(UnarchiveCommand(fs: fs));
|
|
addSubcommand(MoveCommand(fs: fs));
|
|
addSubcommand(SearchCommand(fs: fs));
|
|
addSubcommand(AddCommentCommand(fs: fs));
|
|
addSubcommand(GetConfigCommand(fs: fs));
|
|
addSubcommand(StatsCommand(fs: fs));
|
|
addSubcommand(LinkCommand(fs: fs));
|
|
addSubcommand(UnlinkCommand(fs: fs));
|
|
}
|
|
|
|
@override
|
|
final String name = 'kanban';
|
|
|
|
@override
|
|
final String description = 'Manage the Kanban board.';
|
|
|
|
@override
|
|
Future<void> run() async => printUsage();
|
|
}
|