import 'dart:convert'; import 'dart:io'; import 'package:jadb/_data_ingestion/open_local_db.dart'; import 'package:jadb/cli/args.dart'; import 'package:jadb/search.dart'; import 'package:args/command_runner.dart'; class QueryWord extends Command { final name = "query-word"; final description = "Query the database for word data"; QueryWord() { addLibsqliteArg(argParser); addJadbArg(argParser); } Future run() async { if (argResults!.option('libsqlite') == null || argResults!.option('jadb') == null) { print(argParser.usage); exit(64); } final db = await openLocalDb( jadbPath: argResults!.option('jadb')!, libsqlitePath: argResults!.option('libsqlite')!, ); final result = await JaDBConnection(db).searchWord('かな'); if (result == null) { print("Invalid search"); } else if (result.isEmpty) { print("No matches"); } else { print(JsonEncoder.withIndent(' ') .convert(result.map((e) => e.toJson()).toList())); } } }