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 QueryKanji extends Command { final name = "query-kanji"; final description = "Query the database for kanji data"; QueryKanji() { 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')!, ); if (db == null) { print("Failed to open database"); exit(1); } final result = await JaDBConnection(db).searchKanji('漢'); if (result == null) { print("No such kanji"); } else { print(JsonEncoder.withIndent(' ').convert(result.toJson())); } } }